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

Hoe te verplaatsen met VBA?

Status
Niet open voor verdere reacties.

Jack Nouws

Terugkerende gebruiker
Lid geworden
16 apr 2008
Berichten
1.396
Hallo

Hoe kan ik de gegevens op blad Order! naar de juiste plaats op blad Data! laten verwijzen?

Met vr gr
Jack
 

Bijlagen

Als ik jou was zou ik je data blad uit elkaar gooien naar verschillende tabbladen.
Waarin ieder tabblad dezelfde naam heeft als een soort.

Hierna maak je een loop door je soorten zodat je in deze loop naar het juiste blad kan gaan om hier je data te plakken.

Voorbeeld code (wel je tabs noemen naar de soorten
Code:
Sub overzetten()
Dim c As Range
Dim legeregel As Integer

Application.ScreenUpdating = False

For Each c In Sheets(1).Range("D9:D14")
    If c <> "" Then
        legeregel = Sheets(c.Value).Range("D65536").End(xlUp).Row + 1
        Sheets(c.Value).Range("") = Sheets(1).Range("H5")
        'plaats hier de regels van al de andere gegevens welke je over wil zetten
    End If
Next c

Application.ScreenUpdating = True

End Sub
 
Als ik jou was zou ik je data blad uit elkaar gooien naar verschillende tabbladen.
Waarin ieder tabblad dezelfde naam heeft als een soort.

Hierna maak je een loop door je soorten zodat je in deze loop naar het juiste blad kan gaan om hier je data te plakken.

Voorbeeld code (wel je tabs noemen naar de soorten
Code:
Sub overzetten()
Dim c As Range
Dim legeregel As Integer

Application.ScreenUpdating = False

For Each c In Sheets(1).Range("D9:D14")
    If c <> "" Then
        legeregel = Sheets(c.Value).Range("D65536").End(xlUp).Row + 1
        Sheets(c.Value).Range("") = Sheets(1).Range("H5")
        'plaats hier de regels van al de andere gegevens welke je over wil zetten
    End If
Next c

Application.ScreenUpdating = True

End Sub

Bedankt voor je snelle reactie, die insteek die je geeft met die tabbladen is zo gek nog niet.
Ik zal eens kijken wat ik er van gemaakt kan krijgen.

Met vr gr
Jack.
 
Bedankt voor je snelle reactie, die insteek die je geeft met die tabbladen is zo gek nog niet.
Ik zal eens kijken wat ik er van gemaakt kan krijgen.

Met vr gr
Jack.

Enig idee wat ik verkeerd heb gedaan? ik heb het stap voor stap gedaan en deze regel blijft leeg!?

Code:
For Each c In Sheets(Order).Range("D9:D14")

Ik weet nu ook niet meer hoe het verder moet:(
Met vr gr
Jack
 

Bijlagen

Code:
For Each c In Sheets([B]"Order"[/B]).Range("D9:D14")

Heus opbouwend bedoeld en absoluut niet slecht bedoeld, maar gezien de vragen van jou hier op het forum: zou een VBA-boek lezen niet nuttiger zijn, en dan pas verder gaan met zulke dingen? Dat zal jouw veel tijd en frustraties besparen.

Wigi
 
Laatst bewerkt:
Code:
For Each c In Sheets([B]"Order"[/B]).Range("D9:D14")

Heus opbouwend bedoeld en absoluut niet slecht bedoeld, maar gezien de vragen van jou hier op het forum: zou een VBA-boek lezen niet nuttiger zijn, en dan pas verder gaan met zulke dingen? Dat zal jouw veel tijd en frustraties besparen.

Wigi

Het werkt, maar nog niet goed.
Ik krijg overal de zelfde datum en dezelfde (datum) en de zelfde prijs te zien(komt niet overeen met wat op order staat, wel wat in de code staat)
Zou die code hier nog gewijzigd kunnen worden?

Met vr gr
Jack
 
In bijgevoegd bestand heb ik de code aangepast zodat de juiste gegevens naar de juiste werkbladen gaan.

Overal stonden dezelfde gegevens omdat de celverwijzingen hardgecodeerd waren.
Verder moet je oppassen voor de benamingen van de planten.
In de code ga je zoeken adhv van de benamingen in de C-kolom. Als hier een afwijking zit tov
de naam van het betreffende werkblad, kan VBA het werkblad niet vinden.
Zorg er dus voor dat er geen verschil is tussen de namen in de lijst en de namen van de werkbladen.

Met vriendelijke groet,


Roncancio
 

Bijlagen

En om alle typfouten te vermijden kan je met volgende macro een lijst maken met al je bladnamen en de validatie overeenkomstig aanpassen.

Code:
Sub SheetNames()
    For i = 1 To Sheets.Count
    If Sheets(i).Name <> "Order" Then
         Cells(i, 13) = Sheets(i).Name
         End If
    Next i
End Sub

Mvg

Rudi
 
:thumb:@ warmbakketje,
Das nog eens een tip.
Was ik zelf nog niet opgekomen.

:thumb:
 
Jack Nouws,

In deze file is dat probleem opgelost.

Ik plaats mijn gegevens via een userform zoals, aantal, plantnaam,potmaat en prijs. Als ik de gegeven wil overzetten kan deze code de plantnamen niet lezen, wel als ik ze zelf in type. Is hier wat aan te doen?

Met vr gr
Jack
 
Jack Nouws,
Je userform "FrmPartijInvoeren.Show" opend niet omdat deze naar het onderstaande workbook verwijst.
Code:
Workbooks("Green Trees")
Kan het dit zijn?
Nu kun je dus niets invoeren en wegschrijven.
 
Jack Nouws,

Ik heb even voor me zelf wat gewijzigd zodat het formulier wel zicht baar werd.
De plantnamen heb ik even gekopieerd en het initaliseren daar naar verwezen.
Als ik dan een plant naam selecterde en de rest ook invulde en op Ok klikte dan werd alles weggeschreven ook de goede plantnaam.
Alleen het wegschrijven gebeurd niet op de plaats die het zou moeten zijn. (zie plaatje)
Een poosje terug hadden we het ook over dat de plantnaam niet werd gelezen en dat kwam omdat je deze had samen gevoegd.
Heb je dit nu toevallig ook gedaan?
 

Bijlagen

  • Voorraad.jpg
    Voorraad.jpg
    56,6 KB · Weergaven: 64
Jack Nouws,

Het verkeerd wegschrijven gebeurd als je op OK klikt.
Als het userform zichtbaar is en ik op de blauwe knop klikt gebeurd er niets, .
Klik ik op de blauwe knop zonder zicht baar userform komt er een fout melding.

Wat is de bedoeling van blauwe onderste knop?
 
Jack Nouws,

Het verkeerd wegschrijven gebeurd als je op OK klikt.
Als het userform zichtbaar is en ik op de blauwe knop klikt gebeurd er niets, .
Klik ik op de blauwe knop zonder zicht baar userform komt er een fout melding.

Wat is de bedoeling van blauwe onderste knop?

De gegevens van het Userform worden uit een andere map gehaald nl: Green Trees.
Via het Userform worden de gegevens op blad Orderbon geplaatst.
En via de onderste blauwe knop moeten de gegevens naar de bijbehorende tabbladen geplaatst worden.
En je had idd gelijk wat betreft die samengevoegde cellen. ik heb het nu handmatig overgetypt en het werkt:thumb: Bedankt voor het meedenken.

Met vr gr Jack
 
Jack Nouws,
Ik heb het gevonden.
Je had eerst staan
Code:
legeregel = Sheets(c.Value).Range("A65536").End(xlUp).Row + 1
Maar het moet zijn
Code:
legeregel = Sheets(c.Value).Range("[COLOR="Red"]F[/COLOR]65536").End(xlUp).Row + 1
Op de tabbladen is kolom F de plantnaam en niet E zoals op het orderformulier.
Ik heb het orderblad leeg gemaakt en zomaar wat ingevult op de Blauwe knop geklikt en hij schrijft het goed weg. (op de juiste bladen)
 
Laatst bewerkt:
Jack Nouws,
Hier is de werkende file.
Ik heb van de omschrijving een invoervak - Gegevensvalidatie gemaakt - zo kun je de namen niet verkeerd schrijven.
Ik hoop dat het naar je zin is.
 

Bijlagen

Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan