Clever-Excel-Forum

Normale Version: Problem bei Schleife
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich habe mit Excel ein EMail Programm erstellt mit dem ich auch mehrere Anhänge in einer EMail verschicken kann.

Die Anhänge sind in Tabelle7 ist Spalte A ab Zeile 2 gespeichert.

Jetzt möchte ich jeden Anhang plus Infos über EMail Adresse, Sendungsdatum etc. im Arbeitsblatt ""versendete Mails"" speichern


Sub EMailVersand_speichern_Klicken()
 
Worksheets("versendete Mails").Activate
last = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1 'erste freie Zeile aktivieren
ActiveSheet.Cells(last, 1).Value = (Tabelle1.Range("B10").Value)
ActiveSheet.Cells(last, 2).Value = (Tabelle1.Range("C13").Value)
ActiveSheet.Cells(last, 3).Value = (Tabelle7.Range("A2").Value)               'EMail-Anhang
ActiveSheet.Cells(last, 4).Value = (Tabelle1.Range("B25").Value)
ActiveSheet.Cells(last, 5).Value = (Tabelle1.Range("B13").Value)
ActiveSheet.Cells(last, 6).Value = Now
ActiveSheet.Cells(last, 7).Value = (Tabelle1.Range("B32").Value)
 
End Sub



Ich brauche jetzt eine Schleife, die solange läuft wie Einträge in Tabelle7 Spalte A sind und den jeweiligen Wert in Tabelle 1 übernehmen.

Wäre toll wenn jemand eine Idee hätte.

Gruß Frank
Hallo Frank,
Sub EMailVersand_speichern_Klicken()
Dim i As Long
For i = 2 To Tabelle7.Cells(Rows.Count, 1).End(xlUp).Row
With Worksheets("versendete Mails").Cells(Rows.Count, 1).End(xlUp)
.Offset(1, 0).Value = Tabelle1.Range("B10").Value
.Offset(1, 1).Value = Tabelle1.Range("C13").Value
.Offset(1, 2).Value = Tabelle7.Cells(i, 1).Value 'EMail-Anhang
.Offset(1, 3).Value = Tabelle1.Range("B25").Value
.Offset(1, 4).Value = Tabelle1.Range("B13").Value
.Offset(1, 5).Value = Now
.Offset(1, 6).Value = Tabelle1.Range("B32").Value
End With
Next i
End Sub
Gruß Uwe
Vielen Dank, das ist perfekt

Gruß Frank
ich muß nur noch ein Problem lösen:


Dim i As Long
  For i = 2 To Tabelle8.Cells(Rows.Count, 1).End(xlUp).Row
    With Worksheets("versendete Mails").Cells(Rows.Count, 1).End(xlUp)
   
    Tabelle1.Range("B10").Value = Format(Now, "DDMMYYHHmmss")

      .Offset(1, 0).Value = Tabelle1.Range("B10").Value + 1
      .Offset(1, 1).Value = Tabelle1.Range("C13").Value
      .Offset(1, 2).Value = Tabelle1.Range("C14").Value              'EMail-Anhang
      .Offset(1, 3).Value = Tabelle1.Range("B25").Value
      .Offset(1, 4).Value = Tabelle8.Cells(i, 1).Value
      .Offset(1, 5).Value = Now
      .Offset(1, 6).Value = Tabelle1.Range("B32").Value
    End With
  Next i


Ich möchte, dass sich bei jedem Durchlauf der Schleife der Wert in Spalte A um 1 erhöht.

Wie kann man das machen?

Gruß Frank
Hallo Frank,

vielleicht so?
Sub EMailVersand_speichern_Klicken()
Dim i As Long
Tabelle1.Range("B10").Value = Now
For i = 2 To Tabelle7.Cells(Rows.Count, 1).End(xlUp).Row
With Worksheets("versendete Mails").Cells(Rows.Count, 1).End(xlUp)
.Offset(1, 0).Value = .Offset(1, 0).Value + i - 2
.Offset(1, 1).Value = Tabelle1.Range("C13").Value
.Offset(1, 2).Value = Tabelle7.Cells(i, 1).Value 'EMail-Anhang
.Offset(1, 3).Value = Tabelle1.Range("B25").Value
.Offset(1, 4).Value = Tabelle1.Range("B13").Value
.Offset(1, 5).Value = Now
.Offset(1, 6).Value = Tabelle1.Range("B32").Value
End With
Next i
End Sub
Gruß Uwe
Hallo Uwe,

das klappt leider nicht - ich möchte eine eindeutige Sendungsnummer generieren

aus dem Datumsformat

Tabelle1.Range("B10").Value = Format(Now, "DDMMYYHHmmss")

Bei deiner Methode werden die Werte 0,1,2 etc. eingetragen und dann beim nächten Ausführen genauso wiederholt.

Gruß Frank
Hallo Frank,

(03.12.2020, 14:51)FrankyHB schrieb: [ -> ]Bei deiner Methode werden die Werte 0,1,2 etc. eingetragen und dann beim nächten Ausführen genauso wiederholt.

vielleicht kannst Du Dich ja dazu durchringen, Deine gewünschten Ergebnisse verständlicher (mit Beispielen) zu zeigen/erklären. Wink

Gruß Uwe
Hallo Uwe,

ich schicke dir hier die Beispieldatei.

du musst zuerst einige Versichnisse anlegen damit das ganze funktioniert.

C:\DE\Bremen\Garden\Front Office\Rechnungen\Ausgewählt
C:\DE\Bremen\Garden\Front Office\Rechnungen\versendet
C:\DE\Bremen\Garden\Front Office\Rechnungen

Dann kopiere ein paar pdf.datein in das Verzeichnis

C:\DE\Bremen\Garden\Front Office\Rechnungen

Die Beispieldatei kannst du speichern wo du willst.

Du mußt auf den Button "hier testen" klicken und kannst das Ergebnis dann auf dem Arbeitsblatt "Mails versendet" sehen.

Gruß Frank

hier die Datei
Hallo Frank,

das wäre mein Vorschlag:
Sub Rechnungsversand_Schaltfläche54_Klicken()
Dim i As Long, j As Date
j = Now
For i = 2 To Tabelle8.Cells(Rows.Count, 1).End(xlUp).Row
With Worksheets("versendete Mails").Cells(Rows.Count, 1).End(xlUp)
.Offset(1, 0).Value = Format(j, "yyyymmddhhnnss") & Format(i - 1, "_00")
.Offset(1, 1).Value = Tabelle1.Range("C13").Value
.Offset(1, 2).Value = Tabelle1.Range("C14").Value 'EMail-Anhang
.Offset(1, 3).Value = Tabelle1.Range("B25").Value
.Offset(1, 4).Value = Tabelle8.Cells(i, 1).Value
.Offset(1, 5).Value = Now
.Offset(1, 6).Value = Tabelle1.Range("B32").Value
End With
Next i
End Sub
Gruß Uwe