Een eerdere hulpaktie heeft geresulteerd in de macro:
“selecteer rijnummer, kopieer cellen, selecteer rijnummer, plak”
“Zoeken” op een product geeft de volgende 2 knoppen: “Stoppen” en “Volgende zoeken”. Deze knoppen blijven zichtbaar en “verhuizen” naar het venster waar de hit gevonden wordt.
Ik heb nu een knop “Kopieer” toegevoegd en de code aangepast.
Het “zoeken – volgende zoeken – stoppen” gaat goed, maar de Kopieer knop blijft op zijn oude positie.
Ik wil, dat deze knop:
- zichtbaar wordt na de eerste hit
- zichtbbaar blijft in het aktieve venster (zoals de andere 2 knoppen)
Hierbij heb ik aan de code de volgende regels toegevoegd (op het moment dat het fout gaat, heb ik bij de regel een apostrof gezet):
Op welke manier verhuist de Kopieer knop wel mee naar een verder gelegen hit?
Groet Nono
Bekijk bijlage 53_kopieer3.xls
“selecteer rijnummer, kopieer cellen, selecteer rijnummer, plak”
“Zoeken” op een product geeft de volgende 2 knoppen: “Stoppen” en “Volgende zoeken”. Deze knoppen blijven zichtbaar en “verhuizen” naar het venster waar de hit gevonden wordt.
Ik heb nu een knop “Kopieer” toegevoegd en de code aangepast.
Het “zoeken – volgende zoeken – stoppen” gaat goed, maar de Kopieer knop blijft op zijn oude positie.
Ik wil, dat deze knop:
- zichtbaar wordt na de eerste hit
- zichtbbaar blijft in het aktieve venster (zoals de andere 2 knoppen)
Hierbij heb ik aan de code de volgende regels toegevoegd (op het moment dat het fout gaat, heb ik bij de regel een apostrof gezet):
Code:
r.6 CommandButton3.Visible = False
r.13 CommandButton3.Visible = False
r.24 ' CommandButton3.Visible = True
r. 38 ' CommandButton3.Visible = False
r. 42 t/m 53
Private Sub CommandButton3_Click()
CommandButton3.Caption = "Kopieer"
t = t + 1
Cells.Find(What:=strfind, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
If t = lAant Then
CommandButton1.Caption = "Zoeken naar"
CommandButton2.Visible = False
CommandButton3.Visible = False
End If
End Sub
r. 64 t/m67
' With ActiveWindow.VisibleRange.Resize(1, 1).Offset(10, 6)
' CommandButton3.Top = .Top
' CommandButton3.Left = .Left
' End With
Op welke manier verhuist de Kopieer knop wel mee naar een verder gelegen hit?
Groet Nono
Bekijk bijlage 53_kopieer3.xls
Code:
1 Dim strfind As String, lAant As Integer, t As Integer
2
3 Private Sub CommandButton1_Click()
4 On Error Resume Next
5 CommandButton2.Visible = False
6 CommandButton3.Visible = False
7 lAant = 0
8 t = 0
9 If CommandButton1.Caption = "Stoppen" Then
10 Application.Goto [A1]
11 CommandButton1.Caption = "Zoeken naar"
12 CommandButton2.Visible = False
13 CommandButton3.Visible = False
14 Else
15 strfind = InputBox("Geef de zoekwaarde op")
16 If strfind = "" Then Exit Sub
17 lAant = WorksheetFunction.CountIf(Columns(3), "*" & strfind & "*")
18 If lAant = 0 Then Exit Sub
19 Cells.Find(What:=strfind, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
20 xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
21 False, SearchFormat:=False).Activate
22 CommandButton1.Caption = "Stoppen"
23 CommandButton2.Visible = True
24 ' CommandButton3.Visible = True
25 t = t + 1
26 End If
27 End Sub
28
29 Private Sub CommandButton2_Click()
30 CommandButton1.Caption = "Stoppen"
31 t = t + 1
32 Cells.Find(What:=strfind, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
33 xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
34 False, SearchFormat:=False).Activate
35 If t = lAant Then
36 CommandButton1.Caption = "Zoeken naar"
37 CommandButton2.Visible = False
38 ' CommandButton3.Visible = False
39 End If
40 End Sub
41
42 Private Sub CommandButton3_Click()
43 CommandButton3.Caption = "Kopieer"
44 t = t + 1
45 Cells.Find(What:=strfind, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
46 xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
47 False, SearchFormat:=False).Activate
48 If t = lAant Then
49 CommandButton1.Caption = "Zoeken naar"
50 CommandButton2.Visible = False
51 CommandButton3.Visible = False
52 End If
53 End Sub
54
55 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
56 With ActiveWindow.VisibleRange.Resize(1, 1).Offset(1, 6)
57 CommandButton1.Top = .Top
58 CommandButton1.Left = .Left
59 End With
60 With ActiveWindow.VisibleRange.Resize(1, 1).Offset(4, 6)
61 CommandButton2.Top = .Top
62 CommandButton2.Left = .Left
63 End With
64 ' With ActiveWindow.VisibleRange.Resize(1, 1).Offset(10, 6)
65 ' CommandButton3.Top = .Top
66 ' CommandButton3.Left = .Left
67 ' End With
68 End Sub