Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Problem bei Schleife
#1
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
Antworten Top
#2
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
Antworten Top
#3
Vielen Dank, das ist perfekt

Gruß Frank
Antworten Top
#4
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
Antworten Top
#5
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
Antworten Top
#6
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
Antworten Top
#7
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
Antworten Top
#8
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


Angehängte Dateien
.xlsm   Beispieldatei.xlsm (Größe: 93,06 KB / Downloads: 3)
Antworten Top
#9
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
	
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste