• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

macroknop altijd actief

Status
Niet open voor verdere reacties.

Josno

Gebruiker
Lid geworden
7 nov 2007
Berichten
73
Is het mogelijk een knop voor een macro altijd actief is, ook al zit je nog in een record.
Nu moet ik eerst een enter of tab geven naar de volgende cel alvorens de Macroknop actief is

Ik geef dus in een cel een deel van de zoekwaarde en laat door de knop deze data zoeken en vullen "zie VBA code"

Sub Opzoeken()
Dim Woord As String
Dim DataBlad As Worksheet, WerkBlad As Worksheet
Dim Rng As Range
Dim MaxRij As Long, Rij As Long, StartRij As Long, WerkRij As Integer
Dim Flag As Boolean

Flag = True
Set DataBlad = Sheets("Data")
Set WerkBlad = Sheets("Zoeken")

WerkBlad.Range("B10:C45").ClearContents
WerkRij = 10

Woord = Trim(WerkBlad.Range("B6").Value)
MaxRij = DataBlad.Range("B65536").End(xlUp).Row + 3

StartRij = 1
Do While Flag = True
Set Rng = DataBlad.Range("B" & StartRij & ":C" & MaxRij).Find(what:=Woord, LookIn:=xlValues, lookat:=xlPart)
If Rng Is Nothing Then
Flag = False
Else
Rij = Rng.Row
WerkBlad.Range("B" & WerkRij & ":C" & WerkRij).Value = DataBlad.Range("B" & Rij & ":C" & Rij).Value
WerkRij = WerkRij + 1
StartRij = Rij + 1
End If
Loop

Set DataBlad = Nothing
Set WerkBlad = Nothing

End Sub
 
Neen, dit kan niet.

Druk gewoon op Enter en dan op knop.

Mits wat aanpassingen kan de macro ook automatisch uitgevoerd worden na wijziging van een cel, maar dan zal er nog steeds op Enter gedrukt moeten worden.

Wigi
 
Neen, dit kan niet.

Druk gewoon op Enter en dan op knop.

Mits wat aanpassingen kan de macro ook automatisch uitgevoerd worden na wijziging van een cel, maar dan zal er nog steeds op Enter gedrukt moeten worden.

Wigi

Wigi,

bedankt voor je reactie, opzich zou het ook mooi zijn dat als je enter geeft in de cel dat dit dan automatisch gebeurt. Kan dit met een VBA code of stel je dit ergens in?


JoSno
 
Dit doe je met een Worksheet_Change event in VBA. Massa's voorbeelden reeds op het forum ;)
 
iets in die zin
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If Intersect(ActiveCell, [B6]) Is Nothing Then
        Dim Woord As String
            Dim DataBlad As Worksheet, WerkBlad As Worksheet
            Dim Rng As Range
            Dim MaxRij As Long, Rij As Long, StartRij As Long, WerkRij As Integer
            Dim Flag As Boolean

            Flag = True
            Set DataBlad = Sheets("Data")
            Set WerkBlad = Sheets("Zoeken")
            
            WerkBlad.Range("B10:C45").ClearContents
            WerkRij = 10
            
            Woord = Trim(WerkBlad.Range("B6").Value)
            MaxRij = DataBlad.Range("B65536").End(xlUp).Row + 3
            
            StartRij = 1
            Do While Flag = True
            Set Rng = DataBlad.Range("B" & StartRij & ":C" & MaxRij).Find(what:=Woord, LookIn:=xlValues, lookat:=xlPart)
            If Rng Is Nothing Then
            Flag = False
            Else
            Rij = Rng.Row
            WerkBlad.Range("B" & WerkRij & ":C" & WerkRij).Value = DataBlad.Range("B" & Rij & ":C" & Rij).Value
            WerkRij = WerkRij + 1
            StartRij = Rij + 1
            End If
            Loop
            
            Set DataBlad = Nothing
            Set WerkBlad = Nothing
                    
    End If
End Sub
 
En beperk je tot

Code:
on error resume next
With Sheets("Zoeken")
   .[B10:C45].clearcontents
   [Data!B10:B45].find(Trim(.[B6]),,xlpart).resize(,2).copy .Range(rows.count,2).end(xlup).offset(1) 
End with
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan