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

kopieeren/toevoegen via macro

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

mdv63

Gebruiker
Lid geworden
30 dec 2011
Berichten
52
Hallo Forumvrienden,

Ik geraak er niet uit...
Ik heb voor het werk een bestandje die we gebruiken als vorderstaat.
wat is de bedoeling...
bij klikken op bijkomende vorderstaat aanmaken dienen de kolommen L / M / N / O te worden toegevoegd naast de kolom P
maw kolommen QRST worden dan de kolommen LMNO maar leeg!

Als ik nu klik dan worden enkel de kolommen MNO toegevoegd.
en bij nogmaals klikken mis ik zelf mijn knop om toe te voegen.

iemand enig idee??

graag wat raad en daad aub
grts
Marc

Bekijk bijlage vraag forum.xls
 
Probeer het eens met deze code

Code:
Sub Bijkomende_vorderstaat()
    Columns("L:O").Copy
    Range("AZ9").End(xlToLeft).Offset(0, 2).End(xlUp).Insert shift:=xlShiftToRight
    Application.CutCopyMode = False
End Sub

Probleem van de vorige code was dat er teveel verwezen werd vanuit de activecell terwijl kennelijk na verloop van tijd de tekst Bijkomende vorderstaat een kolom verder is komen te staan als oorspronkelijk bedoeld hierdoor werd niet L tm O gekopieerd maar M tm P. Het was eenvoudiger een nieuwe korte code te schrijven ipv de oude te verbouwen naar een consistent werkende..

De nieuwe code kopieert simpel altijd L:O en zoekt daarna zelf wat de laatst gevulde cel is Range("AZ9").End(xlToLeft) om daarna met 1 kolom tussenruimte .Offset(0, 2) de 4 gekopieerde kolommen te plakken .Insert shift:=xlShiftToRight

De knop met de macro is eenvoudig weg verplaatst naar rij 1 waar de andere knoppen ook staan om zoekraken te voorkomen
 

Bijlagen

Laatst bewerkt:
Onbeperkt tot het aantal kolommen.
Code:
Sub Bijkomende_vorderstaat()
On Error GoTo einde
    Columns("L:O").Copy Cells(9, Columns.Count).End(xlToLeft).Offset(-8, 2)
    Exit Sub
einde: MsgBox "Alle kolommen zijn in gebruik"
End Sub
 
Hey Roeljongman,

Code werkt super
Een dikke bedankt hiervoor!

Ik stoei nog een wat verder met het geheel en als ik vast zit ..... :)
grts
Marc




Probeer het eens met deze code

Code:
Sub Bijkomende_vorderstaat()
    Columns("L:O").Copy
    Range("AZ9").End(xlToLeft).Offset(0, 2).End(xlUp).Insert shift:=xlShiftToRight
    Application.CutCopyMode = False
End Sub

Probleem van de vorige code was dat er teveel verwezen werd vanuit de activecell terwijl kennelijk na verloop van tijd de tekst Bijkomende vorderstaat een kolom verder is komen te staan als oorspronkelijk bedoeld hierdoor werd niet L tm O gekopieerd maar M tm P. Het was eenvoudiger een nieuwe korte code te schrijven ipv de oude te verbouwen naar een consistent werkende..

De nieuwe code kopieert simpel altijd L:O en zoekt daarna zelf wat de laatst gevulde cel is Range("AZ9").End(xlToLeft) om daarna met 1 kolom tussenruimte .Offset(0, 2) de 4 gekopieerde kolommen te plakken .Insert shift:=xlShiftToRight

De knop met de macro is eenvoudig weg verplaatst naar rij 1 waar de andere knoppen ook staan om zoekraken te voorkomen
 
Harry,
Ook deze werkt
dus... ook een bedankt
grts
Marc


Onbeperkt tot het aantal kolommen.
Code:
Sub Bijkomende_vorderstaat()
On Error GoTo einde
    Columns("L:O").Copy Cells(9, Columns.Count).End(xlToLeft).Offset(-8, 2)
    Exit Sub
einde: MsgBox "Alle kolommen zijn in gebruik"
End Sub
 
Roeljongman,

Als ik jullie code bekijk en ik bekijk dan de code in mijn bestand die onder die van jullie staan stel ik mezelf de vraag of deze ook niet kunnen worden ingekort?
zou in ieder geval al een stuk leuker zijn om te zien zoals die van jullile.

Alvast bedankt voor een eventuele reactie

grts
Marc
 
die handschoen pakken we maar op dan :cool:

de regel invoegen is al ingekort. naar 1 regel

Code:
Sub Ligne_suppl_Base()

Range("Total_Base").Offset(-2, 0).EntireRow.Insert shift:=xlShiftDown, CopyOrigin:=Range("Ligne_Matrice")

End Sub

naast de code moet ook even het naambereik "Ligne_Matrice" aangepast worden
van ='Annexe Cde'!$F$13

naar ='Annexe Cde'!$13:$13


De andere macro's moet ik nog even naar kijken voor hun eigenaardigheden.
 
Die handschoen zit je als gegoten Roel!
Prachtig.
Benieuwd naar het vervolg :p

Thx
Marc

die handschoen pakken we maar op dan :cool:

de regel invoegen is al ingekort. naar 1 regel

Code:
Sub Ligne_suppl_Base()

Range("Total_Base").Offset(-2, 0).EntireRow.Insert shift:=xlShiftDown, CopyOrigin:=Range("Ligne_Matrice")

End Sub

naast de code moet ook even het naambereik "Ligne_Matrice" aangepast worden
van ='Annexe Cde'!$F$13

naar ='Annexe Cde'!$13:$13


De andere macro's moet ik nog even naar kijken voor hun eigenaardigheden.
 
Die vorige macro van 1 regel werkte toch niet helemaal lekker en bij het analyseren van de andere delen heb ik hem dus weer aangepast.. uiteindelijk over kortere macro's en minder fout gevoelig

belangrijkste wijziging is dat er standaard een supplement aanwezig is maar dat deze verborgen is en dus door de macro word ingevoegd op moment dat deze nodig is. Voordeel van deze werkwijze is dat je de som formules al goed hebt staan in het blad, als er een supplement ingevuld moet worden is er een knop "Supplement werken tonen" die toont dan de standaard 10 invoerregels en de benodigde subtotalen, verder is er een knop "Supplementwerken verbergen" en de macro om een extra lijn toe te voegen is aangepast. let op de knop "supplement verbergen" maakt ook de inhoud leeg en verwijderd extra toegevoegde regels in het supplement, je moet die knop dus niet gebruiken om het tijdelijk te verbergen. Eventueel kan het leegmaken van het supplement gebied ook een aparte macro worden, maar het leek mij wat veel knoppen worden dan.
 

Bijlagen

Roel,

schitterend, maar heb ondertussen even zitten stoeien met het bestandje en er zitten nogal wat hiaten in ....
Kan je prive geen berichten sturen anders zou ik het je even duidelijk maken waar deze zich nog bevinden.

mocht jij prive kunnen sturen.... zo heb ik jou adres dan ook.

anders laat je me maar weten en dan doen we het via deze weg.
grts
Marc



Die vorige macro van 1 regel werkte toch niet helemaal lekker en bij het analyseren van de andere delen heb ik hem dus weer aangepast.. uiteindelijk over kortere macro's en minder fout gevoelig

belangrijkste wijziging is dat er standaard een supplement aanwezig is maar dat deze verborgen is en dus door de macro word ingevoegd op moment dat deze nodig is. Voordeel van deze werkwijze is dat je de som formules al goed hebt staan in het blad, als er een supplement ingevuld moet worden is er een knop "Supplement werken tonen" die toont dan de standaard 10 invoerregels en de benodigde subtotalen, verder is er een knop "Supplementwerken verbergen" en de macro om een extra lijn toe te voegen is aangepast. let op de knop "supplement verbergen" maakt ook de inhoud leeg en verwijderd extra toegevoegde regels in het supplement, je moet die knop dus niet gebruiken om het tijdelijk te verbergen. Eventueel kan het leegmaken van het supplement gebied ook een aparte macro worden, maar het leek mij wat veel knoppen worden dan.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan