Herbers Excel-Forum - das Archiv

VBA - Schleifenproblem

Bild

Betrifft: VBA - Schleifenproblem
von: Martin
Geschrieben am: 19.09.2003 10:24:45
Hallo,

mit folgendem Makro (auf das Wesentliche reduziert) lese ich Werte einer Tabelle aus und kopiere sie in ein Mail nach Outlook:



Sub Schleife2()
Dim olApp As Outlook.Application
Dim oMailItem As Outlook.MailItem
Set olApp = New Outlook.Application
Set oMailItem = olApp.CreateItem(olMailItem)
On Error GoTo 0
IntCount = Sheets(2).Range("G6:G124").Rows.Count
For i = 1 To IntCount
strwhere = strwhere & Sheets(2).Range("B6:B124").Rows(i) & " " & Sheets(2).Range("G6:G124").Rows(i) & vbCrLf
Next
With oMailItem
.Body = strwhere
.Display
End With
Set olApp = Nothing
Set oMailItem = Nothing
End Sub



Das funktioniert soweit auch ganz gut. Nur habe ich in der Range, die von IntCount abgegrast wird, nicht unbedingt überall Werte stehen und gerade diese Zellen müssten ausgeschlossen werden.

Konkret: das Makro müsste derart abgeändert werden, dass IntCount nicht die Anzahl Zellen im benannten Bereich zählt, sondern nur diejenigen in Range("G6:G124"), deren Zellwert > "" ist.

Leider bekomme ich es aber nicht auf die Reihe. Kann mir jemand einen Tip geben bitte?

Gruss,
Martin
Bild

Betrifft: AW: VBA - Schleifenproblem
von: Dirk
Geschrieben am: 19.09.2003 10:47:42
Vielleicht unsauber aber hilft unter Umständen.

For I = 1 To IntCount
If Range("G6:G124").Rows(I).Value = "" Then
I = I
Else
strwhere = strwhere & Sheets(2).Range("B6:B124").Rows(I) & " " & Sheets(2).Range("G6:G124").Rows(I) & vbCrLf
End If
Next
Bild

Betrifft: AW: VBA - Schleifenproblem
von: Martin M.
Geschrieben am: 19.09.2003 10:54:56
Hallo Namenskollege
probier innerhalb der Schleife eine Abfrage zu machen:

For i = 1 to IntCount
if Sheets(2).Range("B6:B124").Rows(i) <> "" then
strwhere = str... usw.
end if
Next i

Grüße
Martin M.
Bild

Betrifft: Danke euch beiden!! oT
von: Martin
Geschrieben am: 19.09.2003 11:25:49
M.
 Bild