• 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 data sheet1 overbrengen naar sheet2

Status
Niet open voor verdere reacties.

WiKa

Gebruiker
Lid geworden
11 dec 2008
Berichten
12
Beste forumleden,

Wie kan mij helpen met onderstaand probleem:

Ik heb een werkblad (sheet1) waarin door gebruikers meerdere velden kunnen worden ingevuld.
Het is niet persé nodig om alle velden te voorzien van een waarde.
Als de gebruiker alle velden, al dan niet voorzien van een waarde, heeft ingevuld moeten deze waarden overgebracht worden naar een ander werkblad (sheet2) middels een <knop> op sheet1.
Daarna moeten alle velden weer leeg gemaakt worden voor een nieuwe invoer.
Op sheet2 moet na het indrukken van de <knop> een nieuwe lege rij worden gemaakt en alle waarden (op diezelfde rij) worden geplaatst in kolommen.
De lege waarden moeten worden overgeslagen.

Voorbeeld sheet1

invullen: A1 C3 D6

sheet2:

KolomA; KolomB; KolomC
A1 C3(leeg) D6
A1 C3 D6(leeg)
A1 C3 D6

Als C3 op sheet1 niet ingevuld is moet op die plaats bijvoorbeeld een streepje worden ingevuld of blanco blijven.
Kolom A wordt altijd voorzien van een waarde!

Wie kan mij hiermee helpen?
 
Dat gaat beter met een voorbeeld document.
 
Zonder voorbeeld het basisprincipe.

Code:
Sub VenA()
  With Sheet1
    Sheet2.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 3) = Array(.[A1].Value, .[C3].Value, .[D6].Value)
    .Range("A1,C3,D6").ClearContents
  End With
End Sub
 
Voorbeeld werkblad

Hallo VenA

Uw oplossing werkt niet.
Ik krijg een foutmelding voor de regel "Sheet2.Cells........

Bijgevoegd een excel-sheet met een voorbeeld. De beschrijving staat op Blad1

Alvast bedankt.
 

Bijlagen

  • Meetwaarden.xlsx
    14,4 KB · Weergaven: 27
In een .xlsx staat geen macro. Als je een bestand met macro's wil bewaren dan moet je het opslaan als .xlsm of .xlsb

Code:
Sub VenA()
  With Blad1
    Blad2.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 6) = Array(.[B4].Value, .[D4].Value, .[F4].Value, .[B8].Value, .[D8].Value, .[F8].Value)
    .Range("B4,D4,F6,B8,D8,F8").ClearContents
  End With
End Sub
 
Sorry, u heeft gelijk. U kunt de extentie van het voorbeeld bestand gewoon wijzigen. Bij het opslaan had ik geen makro o.i.d. ingevoegd, kreeg dus ook geen melding van Excel omtrent de extentie.
 
Heb je de code in #5 geprobeerd? Hoe kan je een foutmelding krijgen zonder de code in te voegen? Het verhaal over extensies wijzigen begrijp ik niet. Niet goed opgeslagen is code kwijt.

Voor het gemak maar even in het bestandje gezet.
 

Bijlagen

  • Meetwaarden.xlsb
    19,6 KB · Weergaven: 29
Laatst bewerkt:
Hallo VenA

Bedankt voor de hulp.
Het rekenblad doet nu exact wat ik ervan verlangde.

WiKa
 
Nogmaals bedankt voor de oplossing.
Ik heb nu nog een aanvullende vraag m.b.t. voorgaande rekenblad.

Stel dat ik, middels voorwaardelijke opmaak, de cellen B8, D8 en F8 een bepaalde kleur heb gegeven. (bijvoorbeeld als een meetwaarde boven een bepaalde waarde uitkomt).
Is het mogelijk dat de opmaak van de cellen B8, D8 en F8 meegenomen worden naar de lijst?

Is het ook mogelijk dat, wanneer je de knop indrukt, er gecontroleerd wordt of alle cellen zijn ingevuld?

Vriendelijk dank. WiKa
 

Bijlagen

  • Meetwaarden_1.xlsm
    21,3 KB · Weergaven: 16
Wijzig
Code:
If .[B4] = "" Then Exit Sub
in
Code:
If Application.CountA(.Range("B4,D4,F4,B8,D8,F8")) <> 6 Then Exit Sub
De voorwaardelijk opmaak zou ik eenmalig handmatig op blad2 instellen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan