Bij de 'print (naar bestand) functie' de lege regels niet printen?

Status
Niet open voor verdere reacties.

vvanasperen

Gebruiker
Lid geworden
9 mrt 2009
Berichten
68
Mensen,

Het volgende is het geval, onderstaande Macro print hartstikke mooi de gegevens naar een bestand,
maaar... Tot mijn spijt worden ook de regels waar de gegevens niet gelijk zijn aan Cells(i, 2).Value =
"Man" And Cells(i, 4).Value <> "" And Cells(i, 12).Value <> "30"
als lege regel in het bestand geprint.
De grote vraag is natuurlijk, hoe kan ik dat oplossen?

Pad = "C:\Feesten\Archief\"
WBname = Format(Now, "yyyymmdd") & " Verjaardag.csv"

Sheets("Feesten").Select

If WorksheetFunction.CountA(Cells) > 0 Then
MaxRij = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
End If

If WorksheetFunction.CountA(Cells) > 0 Then
Maxkolom = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
End If

Open Pad & WBname For Output As #1

For i = 2 To MaxRij
For j = 1 To 1
If Cells(i, 2).Value = "Man" And Cells(i, 4).Value <> " " And Cells(i, 12).Value <> "30" Then
Print #1, Trim(Cells(i, 1).Value) & ";" & "Verjaardag";
End If
Next
Print #1, ""

Next

Close #1

Ik kijk echt uit naar een oplossing voor dit probleem. Heb het nog nergens kunnen vinden en van alles
uitgeprobeerd, dusss... Alvast bedankt voor het meedenken...

Groeten,

Vincent
 
beetje vreemde loop heb je, ik snap die tweede for ook niet.
Zoals hij nu is maak je ook bij iedere iteratie een lege regel aan.

Probeer dit eens:

Code:
Open Pad & WBname For Output As #1

For i = 2 To MaxRij
       If Cells(i, 2).Value = "Man" And Cells(i, 4).Value <> " " And Cells(i, 12).Value <> "30" Then   Print #1, Trim(Cells(i, 1).Value) & ";" & "Verjaardag";
Next i

Close #1
 
Bedankt voor je reactie Modbeek,

Krijg nu echter de melding Compileerfout: Next zonder For
Iets waar ik zelf ook al eerder tegen aan ben gelopen...

Groet,

Vincent
 
Waarom niet in Excel ?
Code:
sub archief()
  with sheets.add
    .name="selectie"
  end with
  with Sheets("Feesten").usedrange
    .autofilter 1,"Man"
    .autofilter 4,"<>"
    .autofilter 12,"<>30"
    .specialcells(xlcelltypevisible).copy sheets("selectie").[A1]
  end with
  sheets("selectie").copy
  with Activeworksheet
    .SaveAs "C:\Feesten\Archief\" & Format(Date, "yyyymmdd") & " Verjaardag.csv",xlformatCSV
   .close false
  end with
End sub
 
Via excel is het helemaal gelukt, bedankt voor het meedenken... :thumb:

Groeten, Vincent
 
@ modbeek:

Heb ook jou optie nogmaals geprobeerd, werkt ook helemaal goed! De End If ontbrak, vandaar dat het even sputterde...
In ieder geval ook enorm bedankt voor het meedenken... :thumb:

Code:
[COLOR="Navy"]Open Pad & WBname For Output As #1

For i = 2 To MaxRij
       If Cells(i, 2).Value = "Man" And Cells(i, 4).Value <> " " And Cells(i, 12).Value <> "30" Then   
Print #1, Trim(Cells(i, 1).Value) & ";" & "Verjaardag";
[COLOR="Red"]End If[/COLOR]
Next i

Close #1[/COLOR]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan