Gegevens uit twee rijen kopiëren naar ander werkblad

Status
Niet open voor verdere reacties.

Liesjes001

Gebruiker
Lid geworden
11 jun 2014
Berichten
82
Beste VBA'ers

ik ben erover aan het denken hoe ik een vba code kan maken om gegevens van "werkblad 2" en "werkblad 3" naar een kader in "werkblad 1" te kopiëren.
Enkel de gegevens uit de rij waar een cel wordt ingevuld zouden mee overgenomen moeten worden.

Ondertussen heb ik al een aantal codes uitgeprobeerd, maar ik snap er niets van.

Is er iemand die hier tips voor kan geven? Voor de handigheid stuur ik een voorbeelddocumentje als bijlage: Bekijk bijlage Gegevens kopieren aan de hand van een knop..xlsm

Mvg,

Lies
 
Dit is één van de codes die me geschikt lijken, maar ik ben er absoluut niet zeker van, omdat ik nog een echte beginneling ben op vlak van vba.

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(ActiveCell, Range("B2:B24")) Is Nothing Then Exit Sub
Application.ScreenUpdating = False
If ActiveCell = "<>" Then

rij = ActiveCell.Row
With Sheets("GEWOON")
.Range("A:B").Copy
With Sheets("GEWOON")
Evrij = .Range("A7").End(xlUp).Row
.Range("A" & Evrij).PasteSpecial Paste:=xlValue
End With
.Range("A" & rij).EntireRow.Delete
End With
End If
End Sub

Ik dacht eraan om deze code in het tweede werkblad te steken en ééntje in het derde werkblad. Is dit een logische stap als ik gebruik maak van de knop?
 
ALT+F11 > dubbelklik op tabblad "invulbon" > plak onderstaande > knop klikken :)
Code:
Private Sub CommandButton1_Click()
    For i = 2 To 3
        With Sheets(i)
            For Each v In .Columns(2).SpecialCells(2)
                If IsNumeric(v.Value) Then
                    r = Sheets(1).Range("A" & Rows.Count).End(xlUp).Offset(1).Row
                    Sheets(1).Cells(r, "A").Value = v.Value & "x " & v.Offset(, -1).Value
                End If
            Next
        End With
    Next
End Sub
 
Spaarie...

de knop werkt, bijna perfect! Dank je voor het helpen! Het enige detail dat nog ontbreekt is...dat de gegevens eigenlijk naast elkaar, gescheiden door een komma...in de kader zouden moeten komen.
Als ik het document echt gebruik, dan zal in werkelijkheid de kader voldoende ruimte geven om de gegevens te noteren. M.a.w. zou ik ze willen verdelen over kolom A t.e.m. G en eventueel met een "enter" van rij 3 tem rij 7 laten overnemen. Is dit mogelijk met vba of niet?

Mvg

Lies
 
Eerst dit
dat de gegevens eigenlijk naast elkaar, gescheiden door een komma
en dan kom je met dit
verdelen over kolom A t.e.m. G en eventueel met een "enter" van rij 3 tem rij 7

Dit is Chinees voor mij.
Hoe wil je het nu hebben ?
Gescheiden door een komma maar niet langer dan kolom G en dan een nieuwe rij beginnen of gescheiden in cellen A tot G en dan een nieuwe rij of ....
 
Ik heb de code iets aangepast, de cel samengevoegd en tekst terugloop aangezet. Zo is het makkelijker dan programmeren.
Code:
Private Sub CommandButton1_Click()
    For i = 2 To 3
        With Sheets(i)
            For Each v In .Columns(2).SpecialCells(2)
                If IsNumeric(v.Value) Then c = c & ", " & v.Value & "x " & v.Offset(, -1).Value
            Next
            Sheets(1).Cells(3, 1).Value = Mid(c, 3)
        End With
    Next
End Sub
 

Bijlagen

Spaarie

dat heb je geweldig gedaan! Nu ben ik al een ganse namiddag aan het uitpluizen hoe ik deze code in het originele document kan plaatsen. En het lukt me langs geen kanten :-(
Vandaar dat ik je een aantal vragen wil stellen...

Private Sub CommandButton1_Click() 'deze naam mag ik toch gewoon aanpassen of niet?'
For i = 2 To 3 ' de 2 en de 3 slagen toch op werkblad 2 en werkblad 3, of niet"
With Sheets(i)
For Each v In .Columns(2).SpecialCells(2)
If IsNumeric(v.Value) Then c = c & ", " & v.Value & "x " & v.Offset(, -1).Value
Next
Sheets(1).Cells(3, 1).Value = Mid(c, 3)
End With
Next
End Sub

En waar in de code wordt aangegeven dat er binnen de kader dient te worden overgeschreven? Is dat die Sheets(1).Cells(3, 1).Value = Mid(c, 3) of niet?

Mvg

Lies (die haar kop hier uren over breekt)
 
Lies,
Wil je de volgende keer de code-tags gebruiken? Deze maken het lezen van de code een stuk makkelijker.
Code:
VBAcode[ /code]

De naam 'Commandbutton1' is de naam van de knop. Als je deze wijzigt dan werkt de knop niet meer, mits je de naam van de knop ook wijzigt. De 'Click' staat natuurlijk voor het 'klikken' op de knop.
De For i = 2 to 3 slaat op de 2e en 3e werkblad volgens de werkbladen index. Dus van links naar recht het 2e en 3e werkblad in je bestand.

Je laatste vraag kan ik alleen maar bevestigen :)

Neem aan dat het originele bestand vertrouwelijke info bevat? Maak anders een kopie ervan en verwijder de info. Dan kan ik het misschien aanpassen naar de opmaak...
 
Laatst bewerkt:
Dag Spaarie

Eerst en vooral wil ik je bedanken voor de hulp en het beantwoorden van m'n vragen. Zou ik je nog mogen vragen of het normaal is dat de werkbladen in de projectverkenner van vba niet dezelfde volgorde hebben dan de werkbladen in het werkelijke document? Ik bedoel dat de verticale volgorde van de werkbladen in vba niet overeenkomen met de horizontale volgorde in het te gebruiken document.

Stel dat je in een document 2 CommandButtons gebruikt, noem je die dan allemaal CommandButton1? Of neem je dan CommandButton1; CommandButton2,...?

Ik heb wat info uit het document weggelaten in de hoop dat de code kan aangepast worden aan het document. Bekijk bijlage Omschrijving aangepast.xlsm


Alvast bedankt!

Mvg

Lies
 
Lies,

De fout is;
In je voorbeeld gebruik je ActiveX-elementen en in je 'echte' bestand gebruik je Formulier-elementen. Een ActiveX knop heeft een naam zoals Commandbutton1, maar een formulier element niet. Hieraan koppel je een macro.

Ik heb het voorbeeld en de code aangepast. Graag even controleren.
 

Bijlagen

Spaarie

dankjewel het werkt bijna prima! Enkel één klein detail dat er nog ontbreekt...als de tekst wordt overgenomen, dan blijft die rij 36 volgen, maar net voor het pagina-einde zou er naar rij 37 gesprongen mogen worden. Dit zou het gemakkelijker maken om het document af te drukken op 1 pagina. Denk je dat dit mogelijk zou zijn?

Ik snap inderdaad nog niet goed het verschil tussen een active x en een formulierbesturingselement. Ik ga het even verder uitpluizen.

Mvg


Lies
 
Ik begrijp niet waar je hiermee op doelt...
als de tekst wordt overgenomen, dan blijft die rij 36 volgen, maar net voor het pagina-einde zou er naar rij 37 gesprongen mogen worden. Dit zou het gemakkelijker maken om het document af te drukken op 1 pagina.
 
Spaarie...

het was een onterechte opmerking van me. Ik zou beter m'n ogen eens open trekken en eventjes kijken wat ik mis doe, vooraleer te zeggen dat de formule niet klopt, want ze klopt perfect! Waarvoor hartelijk dank! Weet jij eventueel hoe ik deze groep zou kunnen steunen?

Mvg en nog eens van harte bedankt!

Lies
 
Staat je netjes ;)

Je steunt het forum in principe al door vragen te stellen en/of te antwoorden op vragen, mocht je financieel willen ondersteunen kan je hier lid worden.

Graag gedaan.
 
Dank je voor de hulp en de informatie! :thumb: Hopelijk ontwikkel ik met de tijd voldoende inzicht om anderen verder te helpen!
 
En financiële steun is vanaf het weekend onderweg! Jullie hebben me knap geholpen en de zin gegeven om meer te leren over VBA!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan