BernieBear
Gebruiker
- Lid geworden
- 15 dec 2011
- Berichten
- 14
In een willekeur aan Excel-documenten, moet de gebruiker een rolnaam kunnen selecteren en kopi�ren naar de cel waar hij op dat moment staat. Data/valideren/lijst is geen optie, omdat de bestanden steeds wisselen.
Dmv een macro wil ik de gebruiker een naam laten kiezen uit een cellen-bereik in een mede geopend bestand namelijk "test rollen.xlsm". De macro hiervoor bevindt zich in datzelfde bestand en wordt gestart met een toets-combi.
Tot aan het selecteren en het kopi�ren van de rolnaam gaat het goed, alleen weet ik niet hoe ik vanaf dat moment het 'oude' celadres van het andere workbook weer kan selecteren om daarin uiteindelijk de gekozen rolnaam te plakken. Het meest simpel zou zijn om Alt-tab te simuleren, maar dat werkt m.i. niet in VBA.
Het betreft de volgende code:
Sub Rolselecteren()
Dim NaamRol As String
Dim NogEenKeer As Integer
Dim Leeg As Integer
On Error Resume Next
' Start opvragen rolnaam
NaamRol = InputBox("Vul (een deel van) de naam van de rol in.")
Windows("test rollen.xlsm").Activate
Sheets("Rolnamen").Select
Range("A1").Select
Do
Cells.Find(What:=NaamRol, After:=ActiveCell, LookIn:=xlValues _
, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False).Activate
NogEenKeer = MsgBox("Is dit de juiste rol?" & vbCr & vbCr & "Komt de rol in het bestand" & vbCr & "niet voor? Klik dan op annuleren.", vbQuestion + vbYesNoCancel)
Loop While NogEenKeer = vbNo
If NogEenKeer = vbYes Then
ActiveCell.Select
Selection.Copy
<<<en hier moet ik terug naar het oorspronkelijke bestand + celadres waar de toetscombi heeft geleid tot het starten van de macro. >>>>
+ nog PasteSpecial commando, maar dat lukt wel......
Else:
Leeg = MsgBox("De rol komt in het bestand niet voor." & vbCr & vbCr & "Voer de rol eerst op.", vbInformation + vbOKOnly)
Sheets("invoer-verkopen").Select
Range("C3").Select
End If
End Sub
Alvast dank voor jullie medewerking! En mocht de oplossing bestaan uit code die bij een ander niveau binnen VBA (dan het werkblad zelf) moet worden opgeslagen; kun je dan aangeven waar precies (want dat begrijp ik nog niet zo goed).
Dmv een macro wil ik de gebruiker een naam laten kiezen uit een cellen-bereik in een mede geopend bestand namelijk "test rollen.xlsm". De macro hiervoor bevindt zich in datzelfde bestand en wordt gestart met een toets-combi.
Tot aan het selecteren en het kopi�ren van de rolnaam gaat het goed, alleen weet ik niet hoe ik vanaf dat moment het 'oude' celadres van het andere workbook weer kan selecteren om daarin uiteindelijk de gekozen rolnaam te plakken. Het meest simpel zou zijn om Alt-tab te simuleren, maar dat werkt m.i. niet in VBA.
Het betreft de volgende code:
Sub Rolselecteren()
Dim NaamRol As String
Dim NogEenKeer As Integer
Dim Leeg As Integer
On Error Resume Next
' Start opvragen rolnaam
NaamRol = InputBox("Vul (een deel van) de naam van de rol in.")
Windows("test rollen.xlsm").Activate
Sheets("Rolnamen").Select
Range("A1").Select
Do
Cells.Find(What:=NaamRol, After:=ActiveCell, LookIn:=xlValues _
, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False).Activate
NogEenKeer = MsgBox("Is dit de juiste rol?" & vbCr & vbCr & "Komt de rol in het bestand" & vbCr & "niet voor? Klik dan op annuleren.", vbQuestion + vbYesNoCancel)
Loop While NogEenKeer = vbNo
If NogEenKeer = vbYes Then
ActiveCell.Select
Selection.Copy
<<<en hier moet ik terug naar het oorspronkelijke bestand + celadres waar de toetscombi heeft geleid tot het starten van de macro. >>>>
+ nog PasteSpecial commando, maar dat lukt wel......
Else:
Leeg = MsgBox("De rol komt in het bestand niet voor." & vbCr & vbCr & "Voer de rol eerst op.", vbInformation + vbOKOnly)
Sheets("invoer-verkopen").Select
Range("C3").Select
End If
End Sub
Alvast dank voor jullie medewerking! En mocht de oplossing bestaan uit code die bij een ander niveau binnen VBA (dan het werkblad zelf) moet worden opgeslagen; kun je dan aangeven waar precies (want dat begrijp ik nog niet zo goed).