Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1760to1764
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA optimieren

VBA optimieren
07.06.2020 13:32:59
Richi
Hallo Zusammen
Habe hier einen Code den ich als Laie nicht verstehe. Weiss zwar, dass dieser Mehrfachzeilen sucht, löscht und Einträge in Spalten überschreibt.
Mit den Ausdrücken FormulaR1C1 = "=RC[-11]&RC[-3]" komm ich nicht zurecht (soviel ich weiss werden diese bei der Aufzeichnung eines Makros verwendet).
Kann mir da jemand helfen, diesen Code zu entflechten d.h. vereinfacht zu schreiben?
Wäre sehr froh darüber.
Liebe Gruess
Richi
---------------------------------------------
Sub Mehrfach()
Dim loLetzte As Long
Application.ScreenUpdating = False
With Worksheets("Single Line")
loLetzte = .Cells(.Rows.Count, "A").End(xlUp).Row
.Range(.Cells(2, "M"), .Cells(loLetzte, "M")).FormulaR1C1 = "=RC[-11]&RC[-3]"
.Range(.Cells(2, "M"), .Cells(loLetzte, "M")).Value = .Range(.Cells(2, "M"), .Cells( _
loLetzte, "M")).Value
.Range(.Cells(2, "N"), .Cells(loLetzte, "N")).FormulaR1C1 = _
"=IF(COUNTIF(C[-1],RC[-1])>1,""Mehrfach"","""")"
.Range(.Cells(2, "N"), .Cells(loLetzte, "N")).Value = .Range(.Cells(2, "N"), .Cells( _
loLetzte, "N")).Value
If WorksheetFunction.CountIf(.Columns("N"), "Mehrfach") > 0 Then
.Range("$A$1:$N$" & loLetzte).RemoveDuplicates Columns:=Array(1, 10), Header:=xlYes
.Range("A1").CurrentRegion.AutoFilter , field:=14, Criteria1:=""
With .AutoFilter.Range
.Offset(1).Resize(.Rows.Count - 1).Columns("G") = 8000
.Offset(1).Resize(.Rows.Count - 1).Columns("H") = "Mehrfach"
.Offset(1).Resize(.Rows.Count - 1).Columns("I") = 8
End With
If .AutoFilterMode = True Then .AutoFilterMode = False
.Columns("M:N").ClearContents
Else
.Columns("M:N").ClearContents
End If
End With
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Gib bitte erstmal Feedback in deinen anderen ...
07.06.2020 13:42:57
Daniel
.. Beiträgen und stelle erst dann die nächste Frage.
Vor allem dann, wenn sich jemand die Mühe macht, dir ein vollständiges Makro zu schreiben (und das kostenlos) sollte ein kleines Dankeschön drin sein.
Gruß Daniel
AW: VBA optimieren
07.06.2020 13:47:57
Richi
Daniel da hast du recht.
Entschuldigung
AW: VBA optimieren
07.06.2020 14:16:49
Daniel
Hi
Hinter .FormulaR1C1 stecken normale Excelformeln in englischer Schreibweise und der alternativen Addressieirungsart die man aber auch in Excel direkt verwenden kann als Z1S1-Bezugsart (kann man über Optionen - Formeln einstellen.
Das R steht für Zeile, das C für Spalte.
Danach folgt die Zeilen- oder Spaltennummer als Zahl.
Steht die Zahl in Klammern, so handelt es sich um einen relativen Zellbezug und die Zahl steht für den Versatzwert.
Steht nach dem R oder C keine Zahl, so geht der Bezug auf die gleiche Zeile oder Spalte (RC[-11] ist die Kurzschreibweise für R[0]C[-11])
Gruß Daniel
PS: kann es sein, das noch mehr af ein Feedback bon für warten?
Anzeige
AW: VBA optimieren
07.06.2020 15:20:11
Richi
Danke Daniel
Mal schauen wie weit ich da komme demnach
RC = R -- Row / C -- Column
-3 würde heissen 3 Spalten nach rechts oder 3 Zeilen nach unten
+3 würde heissen 3 Spalten nach links oder 3 Zeilen nach oben
Nein es stehen keine weiteren Feedbacks aus.
Gruss
Richi
AW: VBA optimieren
07.06.2020 15:32:36
Daniel
im Prinzip ja, wenn du noch rechts und links, sowie oben und unten miteinander tauschst.
Gruß Daniel
AW: VBA optimieren
07.06.2020 15:45:09
Richi
Dann hab ich's verstanden.
Danke Dir
Gruss Richi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige