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

VBA waarde kopieren naar eerstvolgende lege cel in kolom C

Status
Niet open voor verdere reacties.

Rens80

Gebruiker
Lid geworden
2 apr 2020
Berichten
46
Hoi,

Ik gebruik de volgende code om de waarde uit een cel te kopiëren naar de eerstvolgende lege cel in kolom A. Nu wil ik de waarde uit cel G6 kopiëren naar kolom c op dezelfde regel. Het lukt mij niet om de code juist te krijgen. Kan iemand mij helpen?

Bij voorbaat dank

Code:
Sheets("Speler aanmelden").Range("h6").Copy
    With Sheets("A selectie")
        .Activate
        .Range("A1").End(xlDown).Offset(1).PasteSpecial Paste:=xlPasteValues
    End With
 
Dit is genoeg

Code:
Sheets("A selectie").Range("A1").End(xlDown).Offset(1) = Sheets("Speler aanmelden").Range("h6").Value

Zonder activate en zonder copy

Groet,

Joske
 
Dank Joske,

Hoe zou de code zijn om de te kopieren naar de eerste lege cel in kolom C? Als ik de A aanpas naar C pakt hij een vaste cel waar steeds naar gekopieerd wordt ipv de eerste lege cel

gr

Rens
 
Dan lijkt mij een voorbeeldbestand met hoe je het hebt toegepast wel handig.
 
Beste VenA,

bij deze

De bedoeling is dat de waarde uit g6 van het tabblad aanmelden terecht komt in de eerste lege cel ( dus achter de naam ) van kolom C van tabblad A selectie

gr

Rens
 

Bijlagen

  • voorbeeldbestand 1.xlsm
    91,1 KB · Weergaven: 66
Code:
Sub a()
Sheets(1).Range("G6").Copy
Sheets(2).Range("C4").End(xlDown).Offset(1).PasteSpecial xlValues
Application.CutCopyMode = False
End Sub

Als je de eerste even zelf invoert is dit voldoende
 
Code:
Sub hsv()
With Sheets("A selectie").Cells(39, 1).End(xlUp).Offset(1)
 .Resize(, 3) = Array(Sheets("speler aanmelden").Range("h6"), .Offset(, 1).Value, Sheets("speler aanmelden").Range("g6"))
End With
End Sub
Of:
Code:
Sub hsv()
With Sheets("A selectie").Cells(39, 1).End(xlUp)
 .Offset(1) = Sheets("speler aanmelden").Range("H6")
 .Offset(1, 2) = Sheets("speler aanmelden").Range("G6")
End With
End Sub
 
Beste Harry,

Ik loop met jouw VBA code tegen twee dingen aan:

1) Als ik een regel in het bereik verwijder pakt de code de eerstvolgende keer de eerstvolgende lege cel onder de laatste gevulde cel. Bijvoorbeeld cel 1 t/m 5 zijn gevuld. Ik verwijder de waarde in cel 3. Dan zou ik willen dat de volgende keer dat de macro moet werken cel 3 weer gevuld wordt. Nu pakt hij cel 6

2) Als alle cellen gevuld zijn in het bereik, maar er tussenliggende cellen weer leeg zijn gemaakt. Pakt de code een vaste cel waar hij de waarde in zet.. Dus bijvoorbeeld: het bereik is 1 t/m 6. Cellen 1, 2, 4, 5, 6 bevatten een waarde. Dan pakt hij nu cel 4 en daar kopieert de code de nieuwe waarde in. De lege cel 3 wordt niet gebruikt.

Heb jij een idee of dat op te lossen is?

Als probleem 1 opgelost kan worden verwacht ik voor probleem 2 dat dat niet voor gaat komen

gr

Rens
 
Rens,

probeer dit eens:
Code:
Sub hsv()
With Sheets("A selectie")[COLOR="#FF0000"].Cells(1, 1).End(xlDown)[/COLOR]
 .Offset(1) = Sheets("speler aanmelden").Range("H6")
 .Offset(1, 2) = Sheets("speler aanmelden").Range("G6")
End With
End Sub
 
Code:
Sub hsv()
With Sheets("A selectie").Cells(4, 1).End(xlDown).Offset(1)
 .Resize(, 3) = Array(Sheets("speler aanmelden").Range("h6"), .Offset(, 1).Value, Sheets("speler aanmelden").Range("g6"))
End With
End Sub

Zo werkt het wel
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan