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

lijnen kopieeren naar tabblad op voorwaarde lege cel

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

ddr23

Gebruiker
Lid geworden
1 mei 2010
Berichten
28
Ik heb gegevens staan op tabblad 1 tem 3.

Ik had graag een overzicht gehad op tabblad "stalen" van alle rijen waar nog een vakje leeg is in de gegevens op tabbladen 1 tem 3.
Vermits de gegevens steeds verder worden aangevuld , is dit enkel nodig op de onderste 10 rijen van de gegevens. (is dus variabel)

vb. op tablad 1 is er een lege cel in nummer 110 en 112.
Deze gegevens zouden dan moeten gekopieerd worden naar tabblad "stalen" . (alle gegevens vanaf kolom a tem h, of ineens de volledige rij kopieeren als dit makkelijker is)


Dit zou dus moeten gebeuren op alle tabbladen (1 tem 3).

Properste zou zijn dat in tabblad "stalen" een rij open gelaten word tussen de gegevens die van de verschillende tabbladen komen. :)

Als dit gebeurd is , kan ik tabblad "stalen" afprinten. Dan heb ik een mooi overzicht.

Als ik dan dag nadien de macro terug start, moeten de gegevens op tabblad "stalen" uiteraard eerst gewist worden.

Ik hoop dat ik het een beetje duidelijk heb kunnen beschrijven.
Alvast bedankt .

Zie bijgevoegd bestand.
 

Bijlagen

Bijvoorbeeld

Code:
Sub jec()
 Dim d, sh, ar, i As Long
 Set d = CreateObject("scripting.dictionary")
 
 For Each sh In Sheets(Array(1, 2, 3))
    ar = sh.Range("A3", sh.Range("H" & Rows.Count).End(xlUp))
    For i = UBound(ar) To UBound(ar) - 10 Step -1
      If InStr("|" & Join(Array(ar(i, 3), ar(i, 4), ar(i, 5), ar(i, 6), ar(i, 8)), "|") & "|", "||") Then d(d.Count) = Application.Index(ar, i)
    Next
    d(d.Count) = Split(Space(7))
 Next
 With Sheets("stalen")
    .UsedRange.Offset(1).ClearContents
    .Range("A3").Resize(d.Count, UBound(ar, 2)) = Application.Index(d.items, 0, 0)
 End With
End Sub
 
Amai, super. Zo snel. Bedankt .
Is het ook mogelijk om de kadertjes rond de cellen mee te kopieeren?

Zo bekom ik op tabblad ook een mooi tabelletje. :)
 
Dat kan maar heeft negatieve gevolgen voor de snelheid. Je kunt het beter met voorwaardelijke opmaak regelen
 
Werkt super, maar in mijn eerste vraagstelling heb ik iets belangrijk over het hoofd gezien.
Ik zou op 4 verschillende voorwaarden moeten kunnen filteren.

1ste manier: filteren zoals het nu al gebeurd met de bestaande code. Dus kijken naar lege vakken in kolom C+D+E+F+G+H. Enkel waarde uit kolom B zou nog mee moeten gekopieerd worden.

2de manier: zou enkel moeten kijken naar lege vakken in kolom C en D. Als er lege vakken zijn , dan moet de waarde uit kolom A , B,C en D gekopieerd worden naar tabblad "stalen". Andere kolommen (waar niets naar gekopieerd word) worden dan automatisch verborgen op tabblad "stalen"

3de manier : zou enkel moeten kijken naar lege vakken E en F. Als er lege vakken zijn, dan moet de waarde uit kolom A , B,E en F gekopieerd worden naar tabblad "stalen".Andere kolommen (waar niets naar gekopieerd word) worden dan automatisch verborgen op tabblad "stalen"

4de manier :zou enkel moeten kijken naar lege vakken G en H. Als er lege vakken zijn, dan moet de waarde uit kolom A , B,G en H gekopieerd worden naar tabblad "stalen".Andere kolommen (waar niets naar gekopieerd word) worden dan automatisch verborgen op tabblad "stalen".

Is het ook mogelijk om de gekopieerde gegevens te sorteren van klein naar groot volgens kolom A e dan volgens kolom B? Nu komen deze omgekeerd in tabblad "stalen" te staan.Uiteraard liefst wel nog steeds per tabblad samen.

Ik heb de code in antwoord van vorig bericht is bekeken, maar mijn kennis is te beperkt. :(
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan