Hallo Excel,- VBA Profis,
ich habe in Blatt "Basis" teilweise "fehlerhafte Werte".
In Blatt "Reparatur" stehen die benötigten "richtigen Werte".
Ich habe ein Makro, welches mir die fehlerhaften Einträge in Basis (durch die Einträge in "Reparatur") ersetzt.
Das Makro;
Sub korrigieren()
Dim ArZiel, ArQuelle, rngZiel As Range, n&, c&
With Sheets("Basis")
Set rngZiel = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 29)
End With
ArZiel = rngZiel.Value2
With Sheets("Reparatur")
ArQuelle = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 27).Value2
End With
For n = LBound(ArQuelle) To UBound(ArQuelle)
For c = LBound(ArZiel) To UBound(ArZiel)
If ArZiel(c, 3) = ArQuelle(n, 1) Then
If ArZiel(c, 6) = ArQuelle(n, 4) Then
ArZiel(c, 8) = ArQuelle(n, 6) ' Basis, Reparatur
ArZiel(c, 9) = ArQuelle(n, 7)
ArZiel(c, 10) = ArQuelle(n, 8)
ArZiel(c, 11) = ArQuelle(n, 9)
ArZiel(c, 12) = ArQuelle(n, 10)
ArZiel(c, 13) = ArQuelle(n, 11)
ArZiel(c, 14) = ArQuelle(n, 12)
ArZiel(c, 15) = ArQuelle(n, 13)
ArZiel(c, 16) = ArQuelle(n, 14)
ArZiel(c, 17) = ArQuelle(n, 15)
ArZiel(c, 18) = ArQuelle(n, 16)
ArZiel(c, 19) = ArQuelle(n, 17)
ArZiel(c, 20) = ArQuelle(n, 18)
ArZiel(c, 21) = ArQuelle(n, 19)
ArZiel(c, 22) = ArQuelle(n, 20)
ArZiel(c, 23) = ArQuelle(n, 21)
ArZiel(c, 24) = ArQuelle(n, 22)
ArZiel(c, 25) = ArQuelle(n, 23)
ArZiel(c, 26) = ArQuelle(n, 24)
ArZiel(c, 27) = ArQuelle(n, 25)
ArZiel(c, 28) = ArQuelle(n, 26)
ArZiel(c, 29) = ArQuelle(n, 27)
Exit For
End If
End If
Next
Next
rngZiel.Value = ArZiel
End Sub
Das finden und ersetzen der Werte klappt bestens!
Das Problem;
Im kompletten Blatt "Basis" werden vorhandene Formel durch Formelergebnisse ersetzt,- das möchte ich allerdings nicht!
Meine Frage;
Kann mir bitte jemand das Makro entsprechend ändern,- so das "suchen, ersetzen" wie bisher stattfindet, allerdings die Formeln "drumrum" nicht in Formelergebnisse umgewandelt werden?
Zum besseren Verständnis;
https://www.herber.de/bbs/user/143816.xlsb
Für die Hilfe bin ich sehr dankbar,
Gruss
Fred