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.

Makro - Tauschen von Werten bei Leereintrag
#1
Hallo liebe Community,

ich habe eine csv, in der unter Anderem primäre und sekundäre Mailadressen gesammelt werden. Manchmal existiert aber nur eine sekundäre und keine primäre Mailadresse. Ich benötige nun ein Makro, dass die sekundäre Mailadresse auf die primäre Mailadresse kopiert, wenn kein Eintrag in der primären Adresse vorliegt, wenn eine primäre Adresse vorliegt, dann soll sie nicht durch die sekundäre Mailadresse überschrieben werden.

Ich hab mich versucht am Schreiben eines Makros, bin aber leider absolut unerfahren mit BASIC.
Ich nutze Excel in der Version 2010 und würde es gern in einer CSV anwenden (also entweder Comma spreaded value oder tabulator spreaded value - falls das relevant für das Makro wäre).

Kann da jemand weiterhelfen, existiert bereits solch ein Code, den man dann nutzen könnte?


Dank und beste Grüße
Egeria
Antworten Top
#2
Hallo Egeria,

wenn Deine CSV-Datei so aufgebaut ist:

Name;PrimäreMail;SekundäreMail
name1;email1;email2

sollte folgender Code klappen

Code:
Option Explicit

Sub jonas0806()
    Dim arrCSV, arrLine, fsoTxt
    Dim i As Long
    
    With CreateObject("scripting.filesystemobject")
        arrCSV = Split(.OpenTextFile("C:\Desktop\DeineDatei.csv").ReadAll, vbCrLf)
        Set fsoTxt = .CreateTextFile("C:\Desktop\DeineDatei.csv")
    End With
    For i = LBound(arrCSV) To UBound(arrCSV) - 1
        arrLine = Split(arrCSV(i), ";")
        If arrLine(1) = "" Then arrLine(1) = arrLine(2): arrLine(2) = ""
        fsoTxt.WriteLine Join(arrLine, ";")
    Next i
End Sub
Gruß Jonas
Antworten Top


Gehe zu:


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