• 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 voor opslaan reis ander blad in rijen waarvan de eerst volgende lege rij

Status
Niet open voor verdere reacties.

Gijsbert1960

Gebruiker
Lid geworden
5 jul 2017
Berichten
135
Hallo Allemaal

Ik ben bezig geweest met opnemen macro maar kan geen VBA schrijven en opname ziet schijnbaar niet in een bepaald bereik of een cel A van eerst volgende rij leeg is. De opname die ik heb plakt de gekopieerde rij in de laast geopende cel in plaats van cel A. Ik heb een bestand bijgevoegd en op blad losverklaring staat de uitleg en de rij die gekopieerd moet worden en geplakt moet worden in Gr weekrapport. De bijgevoegde bladen zitten erbi om U een idee te geven hoe alles werkt en de gegevens vandaan komen.

Bekijk bijlage 313453

M vr gr
Gijs
 
Test dit eens:
Code:
Sub Reis_opslaan()
'
' Reis_opslaan Macro
'

'
Sheets("Losverklaring").Range("P52:AF52").Copy
Sheets("Gr weekrapport").Range("A" & Range("A15").End(xlDown).Row + 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    Application.CutCopyMode = False
    ActiveWorkbook.Save
End Sub
 
Hallo Cobbe

Ik heb hem geprobeerd in het bestand maar hij plakt alleen in rij 17 ipv 16 en bij volgende opslaan weer op 17 en in het orginele bestand alleen in rij 25 maar dan zonder de gegevens te plakken.
Ik weet niet hoe dat kan in probeer hem via macro uitvoeren.
 
Code:
Sub Reis_opslaan()
'
' Reis_opslaan Macro

Sheets("Losverklaring").Range("P52:AF52").Copy
Sheets("Gr weekrapport").Range("A" & Range("A15").End(xlDown).Row + 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    Application.CutCopyMode = False
    ActiveWorkbook.Save
End Sub

Deze code copiëert bereik P52:AF52 van Losverklaring naar Gr weekrapport A17 -- omdat A17 de eerste vrije cel is na A15.

Volgende opslaan-commando plakt die gegevens op A18.

Als dat niet klopt heb je de verkeerde code opgenomen en is de bedoeling wellicht iets anders.
 
Hallo Cobbe

reizen per weekHet klopt dat als A16 vrij is daargeplakt wordt, en de volgende op A17 enz tot A22 7reizen per week is max. Dan volgende reis die week eerst blad dan printen omdat A22 niet vrij is dan cellen bereik A16:Q22 inhoud wissen en dan reis 8 enz die week plakken. Aan eind week wordt dit blad samen vanuit een ander blad geprint en gewist voor nieuwe week. Ik heb Uw code geplakt in de macro en hij plakt alleen op Rij 17 ook als 16 leeg is en de volgende ook alleen op 17. De volgende code is het orgineel opgenomen die aangepast en die plakte op de laatste gekozen cel. Die van U wel In A beginnend. Ik weet niet hoe dat kan want volgens de code .Range("A" & Range("A15").End(xlDown).Row + 1) eerst volgende lege cel

Code:
'
' Reis_opslaan Macro
'

'
    Sheets("Losverklaring").Select
    Range("P52:AF52").Select
    Selection.Copy
    Sheets("Gr weekrapport").Select
    Range("A16").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    ActiveWorkbook.Save

M vr gr
Gijs
 
Zou het op deze manier kunnen?
Code:
Sub Reis_opslaan()
  With Sheets("Gr weekrapport").Range("N15").End(xlDown)
    If .Offset(1).Row = 23 Then
      MsgBox "Eind bereikt", vbCritical, "Overicht vol!"
      Exit Sub
    End If
     
    .Offset(1, -13).Resize(, 17) = Sheets("Losverklaring").Range("P52:AF52").Value
  End With
End Sub
 
Hallo Allemaal

Jack Nouws de formule van U geeft aan als bereik vol is, dat zal ik zeker gebruiken. Mijn probleem is dat de formule van Cobbe niet doet wat hij moet doen, de code is het volgende
Code:
Sheets("Losverklaring").Range("P52:AF52").Copy
    Sheets("Gr weekrapport").Range("A" & Range("A15").End(xlDown).Row + 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    Application.CutCopyMode = False
    ActiveWorkbook.Save
Hij moet in kolom A16 tot A22 kijken of Rij leeg is dan plakken bij niet leeg volgende Rij. Ik heb deze formule in macro geplaatst maar hij zet elke keer alleen in Rij 17 terwijl 16 leeg is. Volgende plaatst hij weer in Rij 17 terwijl die dan wel vol is. Ik kan er niet achter komen waardoor, Ik weet niets van formule schrijven en via opnemen kom ik er ook niet achter hoe ik kan laten zien of een rij leeg is of niet.

Ik hoop dat iemand weet wat ik fout doe omdat de formule van Cobbe het bij mij niet doet.

M vr gr
Gijs
 
Hoi ,
het blauwe gedeelte van de code zou hetzelfde moeten doen als de code van cobbe.
Code:
[LEFT][COLOR=#333333][FONT=monospace]Sub Reis_opslaan()
  With Sheets("Gr weekrapport").Range("N15").End(xlDown)
    If .Offset(1).Row = 23 Then
      MsgBox "Eind bereikt", vbCritical, "Overicht vol!"
      Exit Sub
    End If
     
   [/FONT][/COLOR][/LEFT][COLOR=#0000ff][LEFT] .Offset(1, -13).Resize(, 17) = Sheets("Losverklaring").Range("P52:AF52").Value[/LEFT][/COLOR][LEFT][COLOR=#333333][FONT=monospace]
  End With
End Sub[/FONT][/COLOR][/LEFT]
 
Anders opgelost maar nog niet compleet

Hallo allemaal

Ik heb een andere oplossing gevonden en die werkt al is het via een omweg. En wel met onderstaande code.
Ik krijg een waarschuwing als er 7 reizen zijn en de 8ste in wil vullen.
Verdere uitleg op blad losverklaring Bekijk bijlage 313527 Het is laat geworden met oplossen, maar nog niet klaar

Code:
With Sheets("Gr weekrapport").Range("N15").End(xlDown)
    If .Offset(1).Row = 23 Then
      MsgBox "Eind bereikt", vbCritical, "Overicht vol!"
      Exit Sub
    End If
 Sheets("Losverklaring").Select
    Range("P52:AF52").Select
    Selection.Copy
    Range("P53:AF53").Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
 With Sheets("Losverklaring")
   .Range("P53:AF" & .Range("P54").End(xlUp).Row).Copy Sheets("Blad1").Cells(Rows.Count, 1).End(xlUp).Offset(1)
   .Range("L52") = .Range("P53").End(xlUp).Offset(1, 4)
  Sheets("Gr weekrapport").Select
    Range("G8").Select
  End With
End With

M vr gr
Gijs
 
Ik heb het nog wat aangepast
maar dat het blad geprint wordt en blad 1 inhoud gewist en eventuele reis 8 geplakt in Blad 1 rij 2 plakken
Hier begrijp ik niet veel van.
Gr Jack
 

Bijlagen

  • connossement Opslaan (2).xlsm
    205,4 KB · Weergaven: 25
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan