VBA code samenvoegen

Status
Niet open voor verdere reacties.

mamin

Gebruiker
Lid geworden
9 dec 2013
Berichten
36
Hallo allemaal,

Ik gebruik volgende code om blad "Inventaris" te kopiëren naar blad2 "Huidige Inventaris" middels een knop.

Code:
Sub CopyData()
Worksheets("Inventaris").Copy after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Huidige Inventaris"
End Sub

en de volgende code om "Nummer Inventaris" met 1 te verhogen, de datum van vandaag automatisch te vullen en de data van de blad1 Inventaris te verwijderen, ook middels een knop.

Code:
Sub NewNR()
Range("E7").Value = Range("E7").Value + 1
Range("Datum1,Datum2,Datum3").Value = Date
Range("D13:J13,E37,E38").ClearContents
End Sub

Nu vraag ik me af of de 2 codes samengevoegd kunnen worden in een code.
Ik wil eigenlijk dat als ik op de knop klik dat de huidige sheet gekopieerd wordt (met behoud van de ingevulde data) naar blad2 en de gegevens van de eerste blad "Inventaris" verwijderen + nummer met 1 verhogen + datum.

Kan iemand mij helpen om de code samen te voegen.

Mvgr.
 
Het kan op verschillende manieren, maar het makkelijkst is waarschijnlijk een with statement toevoegen om je huidige sheet te onthouden:

Code:
Sub CopyData()
with ActiveSheet
   Worksheets("Inventaris").Copy after:=Worksheets(Worksheets.Count)
   ActiveSheet.Name = "Huidige Inventaris"
   .[e7].value = .[e7].value+1
   .Range("Datum1,Datum2,Datum3").Value = Date
   .Range("D13:J13,E37,E38").ClearContents
end with
End Sub
 
antwoord op mijn eigen vraag = ja :)
hij doet het dank je wampier
 
Met behulp van wampier is mijn code met succes samengevoegd. Ik heb wat aanpassingen aangebracht mbt de naam van de gekopieerde sheet. Hij krijgt nu een naam uit cel.

In principe werkt de code goed maar als de cel leeg is krijg ik natuurlijk een fout melding.
Ik heb geprobeerd If MsgBox toe te voegen met ("Graag nummer Inventaris toevoegen") en Else Exit Sub als niets is ingevuld zonder de sheet te kopiëren..

Ik kom niet uit. Help!!!


Code:
Sub CopyData()
with ActiveSheet
   Worksheets("Inventaris").Copy after:=Worksheets(Worksheets.Count)
   ActiveSheet.Name = Sheets("Inventaris").Range("nrInventaris").Value
   .[e7].value = .[e7].value+1
   .Range("Datum1,Datum2,Datum3").Value = Date
   .Range("D13:J13,E37,E38").ClearContents
end with
End Sub
 
Die kun je toch voor de with statement plaatsen?

Code:
if Range("nrInventaris") = "" then
   msgbox("inventarisnr)
   exit sub
end if
with activesheet ' etc
 
Dank je :d ik ben niet zo vba-er
Maar ik ben de laatste tijd erin gedoken en waarschijnlijk wordt het tijd om een cursusje te pakken.
 
Gaat niet. If... blijft rood.
Waarschijnlijk moet ik ActiveSheet of zo voor Range zetten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan