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

Macro om naar 't begin van de (toevallige) regel te springen

Willem_II

Gebruiker
Lid geworden
10 feb 2024
Berichten
7
Besturingssysteem
Windows 10
Office versie
2019
In Excel wil ik een macro hebben die (vanuit een gekozen positie in het werkblad) naar het begin van de betreffende rij springt, en vanaf die positie enkele handelingen uitvoert op de betreffende rij.
Momenteel heb ik een macro gemaakt op rij 28. De macro springt dan naar A28, en gaat op rij 28 de gewenste opdrachten uitvoeren.
Als ik nu bijvoorbeeld ergens in rij 44 sta, wil ik dat de macro begint in A44, en daarna verder werkt in rij 44.
Maar nu gaat-ie vanuit ergens in rij 44 eerst naar A28 en gaat dan in rij 28 aan het werk. Terwijl de klus in rij 44 plaats moet vinden.
Als ik in de macro-editor kijk, zie ik overal 28 staan.
Hoe maak ik een macro die rij-onafhankelijk is?
 
Zonder dat we verder iets kunnen zien, wijzig die 28 in: Activecell.Row()
 
Wat een snelle reactie! Dankjewel.
Ik snap de bedoeling een klein beetje, maar ik weet nauwelijks iets van VBA.
De inhoud van cel A** wil ik (tijdelijk) verplaatsen naar de (altijd lege) cel B** (en andere aanpassingen op de betreffende rij **). Nu heb ik:

Sub namen_wisselen()
'
' namen_wisselen Macro
'
' Sneltoets: Ctrl+w
'
Range("A29").Select
Selection.Cut
Range("B29").Select
ActiveSheet.Paste
...

Dat getal 29 moet dus vervangen worden door de 'actieve rij'. Hoe kan dat?
 
Doe het eens zo:
Code:
Sub namen_wisselen()
    Rij = ActiveCell.Row
    Range("B" & Rij).Value = Range("A" & Rij).Value
    Range("A" & Rij).ClearContents
End Sub
 
Fijn - het lijkt te werken :)
'k Heb het iets anders gedaan. De inhoud van cel A moet verwisseld worden met die van cel C. Daarvoor heb ik alsnog een lege hulpkolom D tussengevoegd:

Range("D" & Rij).Value = Range("A" & Rij).Value
Range("A" & Rij).Value = Range("C" & Rij).Value
Range("C" & Rij).Value = Range("D" & Rij).Value
Range("D" & Rij).ClearContents

Dat begin gaat goed.
Maar nu is de opmaak ook veranderd, waardoor ik A t/m D wil aanpassen. Ik probeerde dit, maar die range(s) zijn fout:

Range("A: D" & Rij).Select
Range("A: D" & Rij).Activate
(Vervolgd door .... Selection.Borders(xlDiagonalDown).LineStyle = xlNone ... Enzovoort).

Niet zelf verzonnen, maar ("A: D" & Rij) aangepast in de macro-editor, waar eerst A28 stond.
(Er moet geen spatie tussen : en D, maar anders wordt 't een smiley).
Weet je ook een oplossing voor het selecteren van enkele cellen in de actieve rij?
 
Gaat dat om cellen naast elkaar, dus aaneengesloten cellen?
 
Inderdaad. Wat fijn zulke snelle hulp
 
Om 10 cellen naar rechts vanaf kolom A op de actieve rij te selecteren:
Code:
Rij = ActiveCell.Row
Range("A" & Rij).Resize(, 10).Select

Stukje uitleg:
 
Maar om je niet teveel lastig te vallen: ken je en goede websites met duidelijke instructies?
Ik had ooit een dik boek over Excel 2002 of zoiets, maar dat heb ik weggedaan omdat ik het nooit meer gebruikte.
Daar stond vast nog iets bruikbaars in over macro's ;(
 
Gratis training:

En deze van Helpmij collega SNB:
 
Dank voor de verwijzingen. Ik ben bang dat 't me momenteel een beetje boven de pet gaat, maar ik zal dit weekend eens gaan studeren.
Voorlopig merk ik dat dit niets meer doet:
Rij = ActiveCell.Row
Range("D" & Rij).Value = Range("A" & Rij).Value
Range("A" & Rij).Value = Range("C" & Rij).Value
Range("C" & Rij).Value = Range("D" & Rij).Value
Range("D" & Rij).ClearContents
Range("A" & Rij).Resize(, 4).Select

Die laatste regel wordt geel.
 
Doet het hier prima.
Als een regel geel wordt is er ook een foutmelding verschenen.
Vermeld die er altijd bij als je een vraag stelt.

Wen er ook aan om code in codetags te plaatsen:
 
Sorry, hier ook!
Hij stond in de 'onderbrekingsmodus' (whatever that maybe).
De macro doet prima wat-ie moet doen :)
Heel erg bedankt voor je adviezen. Ik ben er goed mee geholpen.
 
Terug
Bovenaan Onderaan