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

Ctrl+V is uitgeschakeld

Status
Niet open voor verdere reacties.
Toch nog een aanvullend vragje.
Kopieer gaat direct naar rij 7 om te plakken. Ik zit te puzzelen met de code, maar zie niet waar het plakken begint.

Code:
     With Sheets("Bestelling")
        .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Resize(, 5).Value = Sheets("Product").Cells(ActiveCell.Row, 1).Resize(, 5).Value
     End With

Ik wil bijv. dat het eerste resultaat op rij 10 geplakt wordt.

Groet Nono
 
Inderdaad puzzelen. Voor plakken als eerste op bijv. rij 10 heb ik de code gewijzigd in:

Code:
…...End(xlUp).Offset(4)…..

en floeps het lukt.

Groet Nono
 
Inderdaad puzzelen. Voor plakken als eerste op bijv. rij 10 heb ik de code gewijzigd in:

Code:
…...End(xlUp).Offset(4)…..

en floeps het lukt.

Groet Nono

Vraag me af of daarop volgende toevoegingen aan Bestelling dan niet op regel 14, 18, 22 etc. komen te staan. Test dat even goed uit.

Tijs.
 
Dus niet, want dit betekent alleen maar, dat na de laatst gebruikte cel er 3 rijen worden overgeslagen.
En de eerste keer gaat het dan goed. Maar bij een volgend resultaat worden weer 3 rijen overgeslagen.
Dus maar weer even puzzelen.

Tijs had dus gelijk!
 
Het volgende ben ik op mijn zoektocht tegengekomen:

“Cells (Rows.Count, 1) is the same as Cells({number of rows},1)”

en vervolgens heb ik

Cells (Rows.Count, 1) vervangen door Cells({10},1) om het plakken op rij 10 te laten beginnen.

Bj uitvoering krijg ik een syntax error.
Hoe moet het dan wel?

Groet Nono
 
Code:
With Sheets("Bestelling")
        .Cells(9, 1).End(xlUp).Offset(1).Resize(, 5).Value = Sheets("Product").Cells(ActiveCell.Row, 1).Resize(, 5).Value
     End With

Dit zou moeten werken. Let op dat hier op rij wordt begonnen waar (d.m.v. de offset) 1 bij wordt opgeteld.

Natuurlijk zou dit ook moeten werken (hier zónder offset):

Code:
With Sheets("Bestelling")
        .Cells(10, 1).End(xlUp).Resize(, 5).Value = Sheets("Product").Cells(ActiveCell.Row, 1).Resize(, 5).Value
     End With

Een versie waarbij de werking gehandhaafd blijft, maar zou moeten beginnen bij rij 10 [Nu ken ik VBA niet zo goed, maar (even in pseudo-code, zoek even op wat wél het juiste zou zijn, misschien is het wel goed ;))]:
Code:
With Sheets("Bestelling")
        .Cells( [B]IF(.Rows.Count<9;9;.Rows.Count)[/B], 1).End(xlUp).Offset(1).Resize(, 5).Value = Sheets("Product").Cells(ActiveCell.Row, 1).Resize(, 5).Value
     End With

Succes,

Tijs.
 
Laatst bewerkt:
Oplossing 1 werkt niet:
- begint op rij 2
- een volgende kopieeraktie wordt wel op een volgende rij geplaatst
- Cells(9,1) gewijzigd in Cells(19,1), dan komt kopieerresultaat weer op rij 2

Oplossing 2 werkt ook niet:
- begint op rij 6
- een vogende kopieeraktie vervangt de waarden op rij 6

Oplossing 3 weet ik op dit moment niet

Groet Nono
 
Ik denk dat ik het snap (en dan is mijn code zeker niet goed):

Via End(xlUp) wordt naar de laatste rij gesprongen waar nog data in staat. Dan met offset 1 wordt er dan een regel naar beneden gegaan.

Vergeet mijn code/pogingen maar... ik zal er volstrekt naastzitten, vrees ik.

Toch nog een poging (zónder xlUP) ;):
Code:
With Sheets("Bestelling")
        .Cells( IF(.Rows.Count<9;9;.Rows.Count), 1).Offset(1).Resize(, 5).Value = Sheets("Product").Cells(ActiveCell.Row, 1).Resize(, 5).Value
     End With

Tijs.
 
Jammer van je poging. Op het moment dat ik deze code inbreng, dan is de regel gelijk rood gekleurd.
Ook nu is het een syntax error.
Bedankt voor je moeite.

Groet Nono
 
Ik kan je alleen maar helpen met een workaround.... Je wilt dus altijd starten op regel 10? dan zou dit blokje je kunnen helpen indien cel A9 dus nóóit beschreven wordt. Als dat wel het geval is, is deze code waardeloos door het tijdelijk plaatsen van een spatie waardoor die cel A9 dus gezien wordt 'als zijnde gevuld'.
Code:
Private Sub CommandButton3_Click()
    With Sheets("Bestelling")
        If .Cells(9, 1).Value = "" Then .Cells(9, 1).Value = " "
        .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Resize(, 5).Value = Sheets("Product").Cells(ActiveCell.Row, 1).Resize(, 5).Value
        .Cells(9, 1).Value = ""
     End With
End Sub

Groet, Leo
 
Dit is een mooie oplossing en voldoet prima.
Ik had al gedacht om de cel te vullen en dan hide, maar dan moet je ook weer protection uitvoeren. Dat is dan een beetje omslachtig.

Een prima oplossing! :thumb: :thumb:

Bedankt Nono
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan