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

Lege waarden overslaan.

Status
Niet open voor verdere reacties.

MJONK

Gebruiker
Lid geworden
14 dec 2008
Berichten
238
Beste helpers van helpmij,

Door het experimenteren met VBA ben ik op een volgende vraag gekomen;

In onderstaande code probeer ik een aantal codes in een veld te plakken die door middel van formules een palletbrief creëert.

Hoe kan ik ervoor zorgen dat alleen de cellen gepakt worden die een waarde bevatten??

Met vriendelijke groet,

Mjonk

Dim c As Variant
Set ws1 = ThisWorkbook.Worksheets("blad1")
Set ws2 = ThisWorkbook.Worksheets("Printblad")

For Each c In ws1.Range("p1", ws1.Range("p" & Rows.Count).End(xlUp))


ws2.Range("h18") = c.Value
ws2.Range("A1:H40").PrintOut


Next
 
Kijk eens in de hulpfunktie van de VBEditor bij specialcells
 
wat ik kan vinden is:

xlNumbers, hoe en waar moet ik dit dan invoeren in de code??

ik heb een aantal dingen geprobeerd, maar kom er niet uit.

Ik denk zelf dat het achter de volgende regel moet;
For Each c In ws1.Range("p1", ws1.Range("p" & Rows.Count).End(xlUp))

krijg het echter niet helemaal goed.
 
Dan kun je nog op dit forum zoeken. Ik ben een enthousiast gebruiker van specialcells, dus er zullen heel wat suggesties daarmee van mijn hand op dit forum te vinden zijn.
 
Ik heb nu de volgende code geprobeerd

For Each c In ws1.Range("p1", ws1.Range("p" & Rows.Count).End(xlUp)).SpecialCells(xlnumbers)

echter krijg ik de melding: geen cellen gevonden.

Terwijl er in deze kolom toch echt waarden staan die door een formule verkregen worden.
 
@snb Hoezo enthousiast gebruiker van specialcells:D

@mjonk dit komt omdat je het vereiste type cellen dat moet gezocht worden niet opgeeft. Wat jij opgeeft is het optionele element. Lees de helpfunctie voor deze methode nog eens goed door

Mvg

Rudi
 
het is me gelukt!!

bedankt voor de hulp beide,

de code is geworden:

Dim c As Variant
Dim answer As Boolean
Set ws1 = ThisWorkbook.Worksheets("blad1")
Set ws2 = ThisWorkbook.Worksheets("Printblad")

For Each c In ws1.Range("q1", ws1.Range("q" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeConstants, xlNumbers)

ws2.Range("h18") = c.Value
answer = Msgbox(ws2.Range("A19").Value, vbYesNo, "moet deze uitgeprint worden??")
If answer = False Then Next
'ws2.Range("A1:H40").PrintOut



Next

End Sub
 
Zet je de vraag dan nog even op opgelost

Mvg

Rudi
 
code was nog niet helemaal goed;

onderstaand voor geïnteresseerden wat het is geworden;

Dim c As Variant
Set ws1 = ThisWorkbook.Worksheets("blad1")
Set ws2 = ThisWorkbook.Worksheets("Printblad")

For Each c In ws1.Range("q1", ws1.Range("q" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeConstants, xlNumbers)



ws2.Range("h18") = c.Value
If Msgbox(ws2.Range("A19").Value, vbYesNo, "Moet deze klant uitgeprint worden??") = vbYes Then ws2.Range("A1:H40").PrintOut , copies:=2







Next

End Sub

@ warme bakkertje, komt in orde!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan