Inhoud variabele kopiëren naar een gevonden cel

Status
Niet open voor verdere reacties.

WLos

Gebruiker
Lid geworden
31 okt 2012
Berichten
11
Goedemiddag,

Ik ben een beginnende VBA schrijver. Ik heb een macro geschreven waarbij ik een bepaalde waarde in een variabele zet (Cijfer) vervolgens ga kijken waar dat cijfer geplaatst moet worden. Die cel vind ik op het kruispunt van Magisternummer en Toetsnummer. In die bewuste cel moet de inhoud van variabele (Cijfer) worden gekopieerd. Ik krijg dit eenvoudigweg niet voor elkaar. Ik heb heel lang op internet en fora gezocht maar stel nu wanhopig toch maar de vraag: Kan iemand mij helpen? De macro gaat als volgt:

Dim Magisternummer As String
Dim Toetscode As String
Dim Laatsteregel As Integer
Dim Laatstekolom As Integer
Dim Rijnummer As Integer
Dim Kolomnummer As Integer
Dim Cijfer As Integer
Dim Invoercel As Integer
Dim r As Integer
Dim k As Integer


Magisternummer = Sheets("Invoer").Range("A2").Value
Toetscode = Sheets("Invoer").Range("B1").Value
Cijfer = Sheets("Invoer").Range("B2").Value
Laatsteregel = Sheets("Cijferlijst").Range("A1000").End(xlUp).Row
Laatstekolom = Sheets("Cijferlijst").Range("ZZ1").End(xlToLeft).Column

Sheets("Cijferlijst").Select

For r = 2 To Laatsteregel
If Cells(r, 1) = Magisternummer Then
Rijnummer = r
End If
Next r

For k = 2 To Laatstekolom
If Cells(1, k) = Toetscode Then
Kolomnummer = k
End If
Next k

Range(("Rijnummer"), ("Kolomnummer")).Value = Cijfer

Bij voorbaat dank!!
 
Zonder voorbeeld document valt er weinig te testen, maar probeer het eens zo:
Code:
Dim Magisternummer As String
Dim LaatsteRegel As Integer
Dim LaatsteKolom As Integer
Dim Toetscode As String
Dim Cijfer As Integer
Dim r As Integer
Dim k As Integer

With Sheets("Invoer")
    Magisternummer = .Range("A2").Value
    Toetscode = .Range("B1").Value
    Cijfer = .Range("B2").Value
End With

With Sheets("Cijferlijst")
    LaatsteRegel = .Range("A1000").End(xlUp).Row
    LaatsteKolom = .Range("ZZ1").End(xlToLeft).Column

    For r = 2 To LaatsteRegel
        If .Cells(r, 1) = Magisternummer Then Exit For
    Next r
    
    For k = 2 To LaatsteKolom
        If .Cells(1, k) = Toetscode Then Exit For
    Next k
    .Cells(r, k).Value = Cijfer
End With

Je beseft dat je voor de Toetscode alleen op regel 1 kijkt en voor het Magisternummer alleen in kolom 1?
Is dat de bedoeling?
 
Laatst bewerkt:
Dank voor je reactie Edmoor,

Ik weet dat ik zoek in de 1e rij en 1e kolom. Het moet een basis worden voor het inlezen van excelsheets vanuit Magister. Magister is een studentvolgsysteem. Ik ken het Format van die sheets nog niet dus heb maar iets verzonnen van rij en kolom 1. Ik stuur nu ook even het voorbeeld bestandje mee.....

MVG,
WLos
 

Bijlagen

  • Cijfers inlezen 001.xlsm
    22,9 KB · Weergaven: 24
Beste Edmoor,

Zojuist jouw code gebruikt en hij doet precies wat ik wil! Dank je. Moet nu alleen nog even begrijpen wat je hebt geschreven. Mocht ik er niet uitkomen dan kom ik er graag op terug!

MVG,
WLos
 
@WLos zeer vriendelijk bedankt.
 
Volgens mij werkt het zo ook wel.

Code:
Sub VenA()
With Sheets("Cijferlijst")
    .Cells(Application.Match([A2], .Columns(1), 0), Application.Match([B1], .Rows(1), 0)) = [B2]
End With
End Sub
 
Beste Helpers,

Ik heb gister een bericht terug gestuurd en daarmee een 2e vraag geopend. Dat was niet mijn bedoeling. Cobbe heeft om half 1 in de nacht nog de moeite genomen en een code gestuurd. Deze werkt prima waarvoor mijn dank!! Uiteraard alle andere ook heel veel dank en de berichten getuigde in mijn beleving veel VBA kennis. Hoop ooit ook zo beginners te helpen...

WLos
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan