Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Variable soll Zeilennummer einer Zelle angeben

Variable soll Zeilennummer einer Zelle angeben
13.01.2015 13:49:07
Kitting
Hallo zusammen,
ich bin ganz neu hier! Seit Freitag hänge ich an einem VBA -meinem ersten Makro-!
Habe hier immer sehr viel gelesen und oft gute Hinweise gefunden. Jetzt muss ich allerdings doch einen eigenen Beitrag verfassen.
ich habe eine Liste, die in etwa so aussieht:
Haarfarbe Geschlecht Alter
blond männlich 17
blond weiblich 45
braun weiblich 66
Ich habe mir vorgestellt eine Variable einzusetzen der man immer den Wert Zeile zuweist und dann wird davon der entsprechende Inhalt kopiert.
Sprich ist i=1 wird (A1 blond) (B1 männlich) (C1 17) kopiert und in den Body einer E-Mail eingesetzt.
Wird i=2 gesetzt dann entsprechend (A2 blond) (B2 weiblich) (C2 45) kopiert.
Wollte es dann so machen:
Sub EMailVersendenOutlook()
Dim i As Integer
i = 1
Dim obNachricht As Object
Dim obMail As Object
Set obMail = CreateObject("Outlook.Application")
Set obNachricht = obMail.CreateItem(0)
With obNachricht
.To = "abc@def.de"
.Subject = "Betreff"
.Body = "Sehr geehrte Damen und Herren," & vbLf & vbLf & "Haarfarbe: " & Range("Ai"). _
Value & vbLf & "Geschlecht: " & Range("Bi").Value & vbLf & "Alter: " & vbLf & Range("Ci").Value & vbLf"Mit freundlichen Grüßen
.ReadReceiptRequested = False
' Mail anzeigen
.Display
' Mail direkt senden
' .send
End With
Set obNachricht = Nothing
Set obMail = Nothing
End Sub
Leider funktioniert das nicht, habt ihr eine Idee wie ich das realisieren kann?
Gruß Jus

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable soll Zeilennummer einer Zelle angeben
13.01.2015 13:56:40
Rudi
Hallo,
z.B.
& Range("A" &i)
.Value ist überflüssig, da Default-Eigenschaft.
Gruß
Rudi

AW: Variable soll Zeilennummer einer Zelle angeben
13.01.2015 13:59:45
UweD
Hallo
ungeprüft...
        .Body = "Sehr geehrte Damen und Herren," & vbLf & vbLf & "Haarfarbe: " & Range("A"&i).  _
_
Value & vbLf & "Geschlecht: " & Range("B"&i").Value & vbLf & "Alter: " & vbLf & Range("C"&i). _
Value & vbLf"Mit freundlichen Grüßen
Gruß UweD

Anzeige
AW: Variable soll Zeilennummer einer Zelle angeben
13.01.2015 14:18:19
Kitting
Hallo Uwe!
Vielen Dank! Es funktioniert!
Danke
Jus
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zeilennummern in Excel als Variable nutzen


Schritt-für-Schritt-Anleitung

Um in Excel eine Zeilennummer als Variable zu verwenden und diese in einer VBA-Formel zu integrieren, folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke auf Einfügen > Modul.

  3. Füge den folgenden Code in das Modul ein:

    Sub EMailVersendenOutlook()
       Dim i As Integer
       i = 1 ' Setze die Zeilennummer hier
       Dim obNachricht As Object
       Dim obMail As Object
       Set obMail = CreateObject("Outlook.Application")
       Set obNachricht = obMail.CreateItem(0)
       With obNachricht
           .To = "abc@def.de"
           .Subject = "Betreff"
           .Body = "Sehr geehrte Damen und Herren," & vbLf & vbLf & _
                   "Haarfarbe: " & Range("A" & i).Value & vbLf & _
                   "Geschlecht: " & Range("B" & i).Value & vbLf & _
                   "Alter: " & Range("C" & i).Value & vbLf & _
                   "Mit freundlichen Grüßen"
           .ReadReceiptRequested = False
           .Display ' Oder .Send für sofortiges Senden
       End With
       Set obNachricht = Nothing
       Set obMail = Nothing
    End Sub
  4. Ändere den Wert von i, um unterschiedliche Zeileninhalte zu kopieren.

  5. Starte das Makro, um die E-Mail mit den gewünschten Informationen zu versenden.


Häufige Fehler und Lösungen

  • Fehler: "Typenübereinstimmung"
    Wenn du diesen Fehler erhältst, stelle sicher, dass die Variablen korrekt deklariert sind und dass die Zellen, auf die du zugreifst, tatsächlich Werte enthalten.

  • Fehler: E-Mail wird nicht gesendet
    Überprüfe, ob Outlook korrekt installiert und konfiguriert ist. Du kannst auch .Display anstelle von .Send verwenden, um die E-Mail zuerst anzuzeigen.

  • Fehler: Unbekannter Fehler
    Überprüfe, ob die richtigen Zellreferenzen verwendet werden. Der Code Range("A" & i) nutzt die Variable i korrekt für die Zeilennummer.


Alternative Methoden

Eine alternative Methode, um die Zeilennummer als Variable zu verwenden, ist die Nutzung von Excel-Formeln anstelle von VBA. Du kannst die INDIREKT-Funktion verwenden, um auf Zellen dynamisch zuzugreifen:

=INDIREKT("A" & i)

Diese Formel gibt dir den Wert der Zelle in der Spalte A zurück, abhängig von der Zeilennummer, die in i definiert ist. Beachte, dass i in einer anderen Zelle definiert sein muss.


Praktische Beispiele

  1. E-Mail mit verschiedenen Zeileninhalten: Wenn du eine Liste mit verschiedenen Personen hast, kannst du i in einer Schleife erhöhen, um für jede Person eine E-Mail zu versenden.

  2. Datenanalyse: Du kannst diese Technik auch verwenden, um Werte aus verschiedenen Zeilen für statistische Berechnungen zu extrahieren, indem du die Zeilennummern als Variablen nutzt.


Tipps für Profis

  • Nutze die For...Next-Schleife, um automatisch E-Mails für alle Zeilen in deiner Liste zu versenden. Hier ein Beispiel:

    For i = 1 To 10 ' Angenommen, du hast 10 Einträge
       ' Sende E-Mail mit den entsprechenden Werten
    Next i
  • Experimentiere mit der With...End With-Struktur, um den Code sauberer und übersichtlicher zu gestalten.


FAQ: Häufige Fragen

1. Wie kann ich die Zeilennummer dynamisch ändern?
Du kannst die Variable i am Anfang des Makros festlegen oder in einer Zelle definieren und mit Range darauf zugreifen.

2. Kann ich mehrere Zeilen auf einmal verarbeiten?
Ja, dies kannst du mit einer Schleife tun. Setze die Schleife so, dass sie die gewünschte Anzahl von Zeilen durchläuft und die E-Mails nacheinander sendet.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige