Macro beginnen na lege rij

  • Onderwerp starter Onderwerp starter jlu
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

jlu

Gebruiker
Lid geworden
29 okt 2010
Berichten
27
Beste mensen,

Ik heb een aantal macro's opgenomen, deze heb ik aan een commandbutton gekoppeld.
Druk ik op deze knop dan start de gekoppelde macro en vult voor mij een soort van autotekst in. (past dus de kolombreedtes aan en vult de teksten in, zeg maar een soort van sjabloon) Nu pakt hij deze altijd vanaf cel 1. Ik wil dat deze bij de eerst geselcteerde commandbutton een lege rij op een werkblad opzoekt en vanaf daar mijn macro uitvoert.

Welke code moet ik dan gebruiken voor mijn opgenomen macro?

De volgorde van welke sjablonen achter elkaar komen te staan wijzigt namelijk elke keer.
Ik had al gezocht in doorzoek dit forum maar kom elke keer op ander soort vragen uit.

Ik hoor graag,

Jan
 
Er zijn verschillende mogelijkheden. Voor XL2007 verhoogt uiteraard het aantal rijen ipv 65536
Code:
Sheets("Blad1!A65536").end(xlup).offset(1)

Sheets("Blad1").cells(rows.count,1).end(xlup).offset(1)

Sheets("Blad1").cells(rows.count,"A")end(xlup).offset(1)
 
Warme Bakkertje,

Dank voor je antwoord, maar ik krijg geen van deze drie werkend.
Ik heb even een voorbeeldje toegevoegd zodat je kan zien wat ik bedoel.

Je hebt op het werkblad "handleiding" een button Start Dynamic Animation deze maakt een nieuwe pagina aan en zet het eerste sjabloon erop welke daarna ingevuld moet gaan worden.
Is deze ingevuld dan moet men een ander sjabloon kiezen, in dit geval groepsopdr. tabbed.
Deze wil ik dan invoegen op de plek waar het vorige sjabloon is geeindigd, dit moet voor alle volgende sjablonen/macro's dan zo gelden.

Ik heb nu alleen de twee genoemde knoppen werkend, ben er nog mee bezig.

Ik hoor graag of jij een oplossing weet.

JanBekijk bijlage Auteurstool_test.xls
 
Ik zou het anders aanpakken nl een werkblad maken met alle templates op en elk afzonderlijk bereik een passende naam geven. Heb je dan een template nodig kan je dit gewoon kopieëren en moet je nog enkel misschien wat rijhoogtes instellen en heb je die ellenlange macro's(die best wat korter kunnen ;)) niet nodig. Het alternatief is alles beginnen herschrijven.
 
Rudi,

Slaap jij eigenlijks wel???:)

Wat jij aangeeft is een oplossing, maar denk ik niet geschikt voor de gebruikers.
De gebruikers die hiermee bezig gaan moeten niet teveel moeten nadenken, het kan ook wezen dat ze maar 1 keer hiermee te maken krijgen.:(

Wat ik nu wil gaan doen is op deze voet verder gaan, en het sjabloon elke keer op een aparte sheet te zetten. En deze na complete invoer allemaal achter elkaar te laten zetten.

Het enige probleem dan is: Er kan twee keer of meer hetzelfde sjabloon gebruikt worden.
Als ik nu een Groepsopdr. Tabbed aanmaak en daarna nog een keer krijg ik een foutmelding. Doordat deze tab al bestaat.

Weet jij hier een code voor dat er bijv bij de eerste (1) achter komt te staan en bij de tweede (2).

Excuses voor mijn waarschijnlijk veel te lange codes, wordt onoverzichtelijk, maar ja elke start is moeilijk.
 
Laatst bewerkt:
Je begrijpt mij verkeerd, denk ik. Je maakt de templates op een apart blad, maar het kopieëren regel je met een macro, dus de gebruiker hoeft ook maar enkel op een knop te drukken en het gevraagde wordt voor hem klaargezet. Dan is het onder elkaar plaatsen veel makkelijker te regelen dan dat je nu alles moet gaan herschrijven.
 
Ohhhhhhh:eek:

Nu begrijp ik hem inderdaad.
Ik maak alle sjablonen onder elkaar.
cmd button 1 schrijft cel A1 tm G8 sheet voorbeeld weg naar nieuwe werkblad op 1e lege regel
cmd button 2 schrijft cel I1 t/m k8 sheet voorbeeld weg naar nieuwe werkblad op eerstvolgende lege regel.

Klinkt inderdaad een stuk simpeler ja.

Ik ga even testen of dit werkt met jou eerste code die je had gegeven.
Net werktte deze niet maar misschien nu wel.

Dank voor je antwoord
 
Ik heb nu deze code toegepast voor het kopieren en dit werkt goed als ik cellen specificeer zoals hieronder ook weergegeven.
Sheets("GroepsopdrachtenTabbed").Select
ActiveSheet.Range("A1:G37").Select
Selection.Copy
Sheets("a").Select
Range("a50:G50").Select
ActiveSheet.Paste
Maar welke code voeg ik toe op het rode gedeelte zodat deze zoekt naar de eerstvolgende lege rij op deze sheet?
Dit begrijp ik niet helemaal.
 
Code:
Sub tst()
    Sheets("GroepsopdrachtenTabbed").Range("A1:G37").Copy
    Sheets("a").Cells(Rows.Count, 1).End(xlUp).Offset(1).PasteSpecial xlPasteAll
    Application.CutCopyMode = False
End Sub
 
Geweldig,

Heb hem net getest en werkt perfect.
Dank je.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan