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

Opgelost Regel lager

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

jverstraten

Gebruiker
Lid geworden
31 dec 2009
Berichten
154
Wie kan mij helpen, ik heb op werkblad1 een regel met gegevens (verkregen uit formule) die ik wil kopiëren naar een regel op blad2 onder bestaande gevulde regels.
Bijvoorbeeld. ik kopieer een regel op blad1 ga naar blad2 kolom B regel 20, omdat de regels 1 tot en met 19 reeds bezet zijn en plak daar de "waarde" geen probleem, maar dat wil ik automatische doen.
Als ik dat met een macro doe gaat dat een keer goed maar bij een volgende keer gaat het fout want dan overschrijft hij regel 20 in kolom B.
Dus ik wil eigenlijk een vba code selecteert de laatste gevulde cel in kolom B, en ga naar een regel lager
 
Goede beschrijving.
Nu nog een voorbeeld documentje.
 
Ik snap het!

Kopieer iets naar iets onder iets mits leeg.
Want regel 19 en misschien meer is al vol.
 
Dit is een van de manieren om de rij te vinden waarvoor kolom B nog niet is gevuld:
Code:
rij = Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row
 
Goede beschrijving.
Nu nog een voorbeeld documentje.
De bedoeling is dus dat regel H6 t/m K6 gekopieerd wordt, en geplakt in B10 van blad2
En bij de volgende opdracht dat hij geplakt wordt in B11 van blad2
En bij weer de volgende opdracht dat hij geplakt wordt in B12 van blad2 enz. enz.
 

Bijlagen

Komt bij mij altijd de vraag weer boven :
Waarom niet meteen in blad 2 zetten?
 
Dat kan met dit achter een knop op Blad1:
Code:
Private Sub CommandButton1_Click()
    With Sheets("Blad2")
        .Cells(.Range("b1").End(xlDown).Row + 1, 2).Resize(, 4).Value = Range("H6:K6").Value
    End With
End Sub
 

Bijlagen

Dat kan met dit achter een knop op Blad1:
Code:
Private Sub CommandButton1_Click()
    With Sheets("Blad2")
        .Cells(.Range("b1").End(xlDown).Row + 1, 2).Resize(, 4).Value = Range("H6:K6").Value
    End With
End Sub
Heel hartelijk dank, dat was mijn bedoeling, dat werkt perfect in het voorbeeld.
Maar ik heb het nog niet werkend in mijn programma.

Bij mij staat "Blad2" uit het voorbeeld, (wat ik voor je vlug in elkaar gezet had) in een ander bestand.
Mijn vraag is nu hoe kan ik het pad in deze code verwerken?
Het bestand staat in Data(D:)> bedrijfsnaam > certificaat, gemakshalve heb ik toch "Blad2" van gemaakt op tabblad ink & ver
Wordt het dan : With Sheets ("D:\bedrijfsnaam\certificaat ;blad2; ink &ver") ????
 
Een voorbeeld dient relevant te zijn.
Gaat het om 2 documenten plaats dan 2 documenten en laat ook weten of ze beide in dezelfde map staan ja of nee.
Dat maakt een groot verschil in hoe de code geschreven moet worden.
 
Toch even voor je gedaan.
Dit zou het duidelijk moeten maken:
 

Bijlagen

Het was erg vroeg en ik zie zojuist dat het nog wat netter kan.
Maar goed, het doet aan de werking niks af :)
 
Het was erg vroeg en ik zie zojuist dat het nog wat netter kan.
Maar goed, het doet aan de werking niks af :)
Heel hartelijk dank voor je snelle reactie.
We zijn er bijna, ik heb de code aangepast:

Sub test()
Application.ScreenUpdating = False
Set wb2 = Workbooks.Open("D:\bedrijfsnaam\certificaat\blad2.xlsm")
With wb2.Sheets("Verl & Ink")
.Cells(.Range("b1").End(xlDown).Row + 1, 2).Resize(, 4).Value = Range("G13:L13").Value
End With
' wb2.Close True
Application.ScreenUpdating = True
MsgBox "Gereed", vbInformation
End Sub

Hij vindt het bestand wel, "Blad2.xlsm" ook tabblad "Verl & Ink" waar de regel geplakt moet worden.

Maar dat gaat nog niet goed Range("G13:L13").Value van mijn werkblad wordt niet geplakt, ik laat hem ook nog even niet sluiten zodat ik het kan zien.
de boodschap "Gereed" krijg ik ook keurig te zien.
 
Je kopieert dus 6 cellen?
Wijzig Resize(, 4) dan eens in Resize(, 6)

N.B.:
Dat is weer anders dan in je voorbeeld.
 
Je kopieert dus 6 cellen?
Wijzig Resize(, 4) dan eens in Resize(, 6)

N.B.:
Dat is weer anders dan in je voorbeeld.
Klopt maar ik maak de originele bestanden liever niet openbaar ivm bedrijfsgegevens.

Ik heb de code aangepast, maar maakt geen verschil.
Hij gaat keurig naar blad2.xlsm en komt ook terecht op tabblad Verl & Ink, maar dan stopt het.

Ik heb ter controle de cursor op tabblad Verl & Ink in kolom B op regel 14 gezet, als ik de code laat draaien blijft hij daar, hij zou naar B19 moeten spring en daar plakken (dat is de eerst volgende lege regel).

Ik denk dat hij blijft hangen op .Cells(.Range("b1").End(xlDown).Row + 1, 2).Resize(, 6).Value = Range("G13:L13").Value
Ik heb ook nog voor de zekerheid gecontroleerd, op mijn werkblad is het echt kolom G regel 13 tot em met kolom L regel 13 wat gekopieerd moet worden.
 
Zonder goed voorbeeld kan ik er helaas heen reden voor aangeven.
 
Gokje.

Sheets(1) aanpassen in de code indien anders
Code:
Sub test()
with Workbooks.Open("D:\bedrijfsnaam\certificaat\blad2.xlsm")
 .Sheets("Verl & Ink").Cells(rows.count, "B").end(xlup).offset(1).Resize(, 6).Value = thisworkbook.sheets(1).Range("G13:L13").Value
 .Close True
End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan