• 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.

Cells.find vba werkt niet in sheet module

Status
Niet open voor verdere reacties.

DjoeZty

Gebruiker
Lid geworden
24 mrt 2004
Berichten
73
Hallo Excel-experts,

Ik ben aan het vogelen in de wereld van Excel en VBA en ben een jaar geleden begonnen met opnemen van acties tot macros.
Zo werk ik met de code cells.find om de waarde van cel A1 te zoeken in een tabel, die bijgewerkt moet worden.
Als de cel met dezelfde waarde is gevonden, wordt deze geactiveerd.
Uit een ander bestand wordt de info gehaald en geplakt achter de geactiveerde cel.

Werkt perfect in een macro binnen een module.
Nu moet ik over naar een sheetmodule (button) en werkt het niet meer.

Dit is de code:

Cells.Find(What:=Sheets("Lijst").Range("A1"), After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate

Wat moet ik veranderen?

Als ik de cells.find regel handmatig uitvoer en deze macroregel oversla, werkt de rest van de sheet module macro perfect.

BVD voor jullie hulp!

MVG,
DjoeZty
 
Plaats eens een voorbeeldbestandje(zonder gevoelige info) met de macro in zodat we iets hebben om mee te werken.
 
Zoals gevraagd, wil je ermee stoeien dan bestanden op de juiste plek zetten.

Alvast bedankt voor je hulp!

MVG,
DjoeZty
 

Bijlagen

Hiermee vind je wel de betreffende cel.
Code:
Workbooks("Cockpit").Worksheets("Lijst").Cells.Find(Sheets("Lijst").Range("A1"), , LookIn:=xlFormulas, LookAt:=xlPart).Activate
Wat mij verbaast is dat je in de code niets met de gevonden cel doet.
De code kan overigens een stuk korter.

Met vriendelijke groet,


Roncancio
 
Probeer het eens met onderstaande
Code:
Sub naar_Cockpit()
'Wordt met mail meegezonden (routine weggehaald, stond ipv BLABLABLA)
Dim Filename As String

'Proeforder saven met proefordernaam
Filename = Sheets("Invoer PO").Range("c4")
ActiveWorkbook.SaveAs Filename:="C:\GO\" & Filename, FileFormat:=xlNormal, _
        Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
        CreateBackup:=False

'Overzichtbestand openen en naam van de proeforder wegschrijven als link voor automatisch invullen
Workbooks.Open ("C:\Cockpit\Cockpit.xls") 'Doelbestand
ThisWorkbook.Activate
Set wsfrom = Workbooks("Invoerformulier.xls").Worksheets("Invoer PO") 'Bronwerkblad
Set wsto = Workbooks("Cockpit.xls").Worksheets("Lijst") 'Doelwerkblad
wsto.Range("A1") = wsfrom.Range("C4")

'cursor naar bestemde rij
fRow = wsto.Columns(2).Find(wsto.Range("A1"), , xlValues, xlWhole)

'Informatie wegschrijven
wsto.Cells(fRow, 2).Resize(, 29) = wsfrom.Range("B82:AD82").Value
wsto.Range("A1").Select
Workbooks("Cockpit.xls").Close SaveChanges:=True

End Sub
 
Kijk, weer wat geleerd.

Beide oplossingen werken perfect!

Dank-dank-dank-dank-dank-dank-dank-dank-dank
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan