Toon posts:

[VBA & Excel] Veranderen van een tabel

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik heb ik VBA een nieuwe formule gemaakt (analyse()) waarmee in excel gekeken wordt of een bepaalde datum overeenkomt met een ingevoerde datum, zo ja, dan wordt de waarde naast deze datum het resultaat van de formule. De tabel die als input dient ziet er als volgt uit (A en B zijn de kolommen en 1 en 2 zijn de rijen):

__________A_______B
1___ 3-1-2005____ 180
2___ 25-2-2005___ 190

en de VBA code is als volgt:


Public Function analyse(datum As Date)
Dim tabel(100)
analyse = 0
Application.Volatile True
For i = A To C

tabel(i) = Range(i & "1")
If tabel(i) = datum Then
analyse = Range(i & "3")

End If

Next i
End Function


Tot zover werk alles perfect. Maar nu heb ik een tabel die inplaats van horizontaal verticaal is. Dus

A B
1 3-1-2005 25-2-2005
2 180 190

Ik heb mijn VBA code hierop alsvolgt aangepast:


Public Function analyse(datum As Date)
Dim tabel(100)
analyse = 0
Application.Volatile True
For i = 1 To 3

tabel(i) = Range("A" & i)
If tabel(i) = datum Then
analyse = Range("B" & i)

End If

Next i
End Function


Deze code werkt echter niet en ik kan maar niet achterhalen waarom!! |:( Waarschijnlijk is het maar een kleinigheidje in de code.

Please help me

  • Daos
  • Registratie: Oktober 2004
  • Niet online
Visual Basic:
1
analyse = Range("C" & i)


[edit]
als ik naar je tekening kijk is heb je de codes omgedraait. De tweede code hoort bij plaatje 1 en de eerste code bij plaatje 2.

Ik zal er nog even beter naar kijken..

[ Voor 70% gewijzigd door Daos op 12-08-2005 12:27 ]


Verwijderd

Topicstarter
Stom stom stom.

Ik heb de VBA codes verkeerdom in de topic gezet. Zet moeten dus andersom . De code die als eerst beschreven staat werkt niet.

  • Daos
  • Registratie: Oktober 2004
  • Niet online
Visual Basic:
5
For i = A To C

A en C zijn variants die allebei leeg zijn. Dat werkt dus niet.
Visual Basic:
9
analyse = Range(i & "3")

Die 3 moet een 2 worden.

Het wordt zoiets:
Visual Basic:
5
6
7
8
9
For i = 1 To 3

tabel(i) = Range(Chr(Asc("A") + i - 1) & "1")
'...
analyse2 = Range(Chr(Asc("A") + i - 1) & "2")


Of zoiets:
Visual Basic:
5
6
7
8
9
For i = 1 To 3

tabel(i) = Cells(1, i)
'...
analyse2 = Cells(2, i)

Verwijderd

Topicstarter
Hij werkt!

Hardstikke bedankt! :)