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.

VBA: Zellen per Makro reparieren
#11
Hallo,

leere Zellen werden mit meinem Vorschlag auch ausgefüllt.

Gruß, Uwe
Antworten Top
#12
(23.03.2024, 14:37)Kuwer schrieb: Hallo,

jetzt ohne Fehlermeldung (hoffentlich):

Code:
...

Die Quellmappe mit dem zu kopierenden Blatt muss beim Start des Makros aktiv sein.

Ansonsten folgende Zeile löschen oder auskommentieren:
Code:
...

Gruß, Uwe

Oha, was passiert hier? 😂 Sorry, Kuwer, ist sehr lieb, aber ich glaube, das schießt über das Ziel hinaus. Die Fehler (leere Zellen) entsteht ja auch, wenn man die Tabelle normal nutzt und mal was löscht oder so, darum bringt eine Kombination da nichts. Ich hab jetzt versucht, den Inhalt des ersten Codes von dir mit dem zu kombinieren, der Fehler bleibt aber der gleiche. Ich erhalte Laufzeitfehler 5 in der Zeile  lngPoE = InStr(lngPoA, strF, "]") "

Meine Güte, bin ich blöd. Er bringt mir diesen Fehler, wenn es keine Zellen mehr zu reparieren gibt... Ich such mich dusselig, weil ich denke, dass hier irgendwas nicht stimmt...

Jetzetle! Hab hier was zusammengewürfelt, ihr werdet sicher lachen, aber egal, es funktioniert jetzt 😂 Ich hab noch Meldungen angehängt bei Erfolg und Misserfolg, weil mich das so dermaßen verwirrt hat (dachte, der Code hat aufeinmal einen Fehler?!) und dann noch das Tabellenblatt gewechselt. War mir nicht sicher, wie der Code ausgeführt wird, wenn kein Tabellenblatt definiert ist und ich von einem anderen Blatt ausführe... garnicht^^ Aber so geht es jetzt zumindest:

Die Erfolgsmeldung habe ich doppelt gemoppelt, weil ich mir nicht sicher war, wann sie funktioniert. Weil hier auch bei einem Erfolg eine Fehlernummer ausgegeben wird... Keine Ahnung, wie das sein müsste...

Code:
Sub Kopierfehler_beheben_Modul4()
    Dim rngB As Range
    Dim strF As String
    Dim lngPoA As Long, lngPoE As Long

    On Error GoTo ErrorHandler

    Set rngB = Worksheets("Kalender").Range("G12:V389")
    strF = rngB.SpecialCells(xlCellTypeFormulas).Cells(1).Formula

    If Len(strF) Then
        lngPoA = InStr(1, strF, "[")
        lngPoE = InStr(lngPoA, strF, "]")
        If lngPoA * lngPoE Then
            strF = Mid(strF, lngPoA, lngPoE - lngPoA + 1)
            rngB.Replace What:=strF, Replacement:="", LookAt:=xlPart, _
                          SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
                          ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
        End If
    End If

    rngB.SpecialCells(xlCellTypeFormulas).Cells(1).Copy
    rngB.SpecialCells(xlCellTypeBlanks).PasteSpecial xlPasteFormulas
    Application.CutCopyMode = False

    MsgBox "Abgeschlossen." & vbNewLine & "Alle Kopierfehler wurden erfolgreich korrigiert.", vbInformation, "Erfolg"

ExitProcedure:
    On Error Resume Next
    Exit Sub

ErrorHandler:
    Select Case Err.Number
        Case 5
            MsgBox "Es wurden keine weiteren Kopierfehler erkannt.", vbInformation, "Hinweis"
        Case 1004
            MsgBox "Abgeschlossen! Alle Kopierfehler wurden erfolgreich korrigiert.", vbInformation, "Erfolg"
    End Select
    Resume ExitProcedure
End Sub


Aber: Ich könnte ja das automatische Kopieren trotzdem nutzen! Es wäre ziemlich genial, wenn man einen "Export" und einen "Import"-Knopf hätte, der den Bereich automatisch in die Zwischenablage kopiert und man mit dem anderen das dann importiert... Uuuuh... Es artet schonwieder aus, liegt bestimmt an dem Liter Kaffee.
Antworten Top
#13
Ich hab jetzt per Makroaufzeichnung kopieren und einfügen erstellt, da noch Messageboxen dazugetan und fertig ist die Laube. Funktioniert klasse! Wenn es andere machen, dann ist das nicht mal so kompliziert 😁😁

Danke an @Kuwer und @Case !
Ideen > Können - genau so sehen meine Themen auch aus...
Antworten Top


Gehe zu:


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