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
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
Top


Gehe zu:


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