• 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 sorteren naar verschillende tabbladen

  • Onderwerp starter Onderwerp starter MJONK
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

MJONK

Gebruiker
Lid geworden
14 dec 2008
Berichten
238
Goedemorgen allemaal,

Ik ben op zoek naar een stukje code waarvoor mijn kennis niet voldoende is.

Ik heb enkele tabbladen met nummers al naam: 70/80/1/2/6 enz.

Nu heb ik één tabblad met alle gegevens, hierop staat één kolom met overeenkomstige cijfers met de tabbladen.

Nu wil ik per rij de gegevens kopiëren naar het juiste tabblad. Dus als in rij1 staat 70 in D1 dat deze rij gekopieerd wordt naar Tabblad met naam 70.

Vervolgens moet de code gaan kijken naar de tweede rij.

Mijn idee is als volgt;

De kolom met codes (bijvoorbeeld kolom D) D1 selecteren. value controleren en kopieren naar het tabblad met deze naam.

Mijn problemen zijn; hoe kan ik een hele rij kopiëren vanuit deze ene actieve cel.

Hoe kan ik op de doeltabbladen de rij vinden waarop geplakt wordt?

Alvast bedankt.

MJONK
 
Goedemorgen allemaal,

Ik ben op zoek naar een stukje code waarvoor mijn kennis niet voldoende is.

Ik heb enkele tabbladen met nummers al naam: 70/80/1/2/6 enz.

Nu heb ik één tabblad met alle gegevens, hierop staat één kolom met overeenkomstige cijfers met de tabbladen.

Nu wil ik per rij de gegevens kopiëren naar het juiste tabblad. Dus als in rij1 staat 70 in D1 dat deze rij gekopieerd wordt naar Tabblad met naam 70.

Vervolgens moet de code gaan kijken naar de tweede rij.

Mijn idee is als volgt;

De kolom met codes (bijvoorbeeld kolom D) D1 selecteren. value controleren en kopieren naar het tabblad met deze naam.

Mijn problemen zijn; hoe kan ik een hele rij kopiëren vanuit deze ene actieve cel.

Hoe kan ik op de doeltabbladen de rij vinden waarop geplakt wordt?

Alvast bedankt.

MJONK
Hey

Ik heb zo eens iets gemaakt.
Ben jammer genoeg het bestand kwijt...
De volledige rij van die ene actieve cel kan je kopieren door Rows("teller:teller") te gebruiken of gewoon Rows("teller"). Dit weet ik niet meer juist vanbuiten.
Teller als variabele die je gebruikt om in de volgende cel te selecteren.
In het juiste tabblad laat je VBA zoeken naar de laatste volle cel, daar tel je 1 bij om in de volgende te geraken en daar plak je dan.
Ik wist toen hoeveel verschillende tabbladen er waren en die kon ik dan selecteren door een If functie en de Sheets("").select te gebruiken

Ik hoop dat je er wat aan hebt.

Mvg

Matti
 
wow! dit is precies wat ik bedoel en misschien zelfs nog beter ook (nieuwe pagina's aanmaken e.d.)

Kun je me misschien uitleggen wat de onderste formule precies doet?
de wksexists formule? deze snap ik niet helemaal

dit is helemaal perfect! hartstikke bedankt.
 
Hallo Mjonk
De formule is ook niet van mij zelf maar vlgns mij kijkt de formule wksexists of het blad bestaat of niet en zo niet dan maakt hij het blad.
 
Het kan compacter met

Sub alternatief()
On Error Resume Next
For Each cl In Sheets(1).Columns(1).SpecialCells(xlCellTypeConstants)
ThisWorkbook.Sheets(cl.Value).Activate
If Err.Number > 0 Then
With ThisWorkbook.Sheets.Add
.Name = cl.Value
End With
Err.Clear
End If
cl.Resize(, 26).Copy ThisWorkbook.Sheets(cl.Value).Cells(Row.Count, 1).End(xlUp).Offset(1)
Next
End Sub
 
Hallo SNB,

Kun je me uitleggen hoe onderstaande regel werkt; gaat excel nu iedere waarde in deze kolom één voor één behandelen?

Ik snap het helaas nog niet helemaal. werkt het ook als ik de kolom in bijvoorbeeld 4 verander? of pakt hij dan zoals in die andere code de eerste drie kolommen niet mee met kopiëren?

For Each cl In Sheets(1).Columns(1).SpecialCells(xlCellTypeConstants)



alvast bedankt.
 
Dat doet die regel inderdaad: kijk in kolom A in alle cellen met een waarde (dus niet de lege cellen of de cellen met een formule die geen waarde opleveren)

Als je wil dat in kolom D wordt gekeken dan wordt het
For Each cl In Sheets(1).Columns(4).SpecialCells(xlCellTypeConstants)
 
Laatst bewerkt:
oké, tot zover snap ik het!

maar worden de drie cellen links van kolom 4 dan ook meegekopieerd??

mvg


mjonk
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan