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

Gleiche Inhalte finden und ersetzen

Gleiche Inhalte finden und ersetzen
23.05.2020 09:26:05
sam
Hallo zusammen,
ich möchte von einem Datenimport in einer Zeile gleiche Werte finden, und diese per VBA fortlaufen umbennenen. Es können max. 6 gleiche Werte vorkommen.
Die gefundenen Werte können von der Zeile her unterschiedlich sein, auch die Position der Spalten ist leider nicht immer gleiche.
Geht so etwas?

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Gleiche Inhalte finden und ersetzen
23.05.2020 09:32:38
Oberschlumpf
Hi,
bin ziemlich sicher, dass das geht.
Aber dazu müsstest du...
...per Upload eine Bsp-Datei mit Bsp-Daten zeigen
...dann genau bestimmen, welche Werte erst mal gleich sind und getauscht werden sollen
...mit welchen Werten sollen doppelte getauscht werden
Ciao
Thorsten
AW: Gleiche Inhalte finden und ersetzen
23.05.2020 09:44:13
sam
Hallo, die Beispieldatei ist hochgeladen.
https://www.herber.de/bbs/user/137685.xlsx
Hier soll zb. immer der Eintrag "Fr" fortlaufend ersetzt werden.
Der erste mit Fr1
Der zweite mit Fr2
usw.
Danke Lg.
AW: Gleiche Inhalte finden und ersetzen
23.05.2020 10:07:48
Matthias
Hi,
hier mal mit Formeln. VBA geht natürlich auch ;-)
Tabelle1

 BCDEFGHIJKLMNOP
5MoDiMiDoFrMoDiMiDoFrMoDiMiDoFr
6MoDiMiDoFr1MoDiMiDoFr2MoDiMiDoFr3

Formeln der Tabelle
ZelleFormel
B6=WENN(LINKS(B5;2)="Fr";B5&ZÄHLENWENN($B$5:B5;"Fr");B5)
C6=WENN(LINKS(C5;2)="Fr";C5&ZÄHLENWENN($B$5:C5;"Fr");C5)
D6=WENN(LINKS(D5;2)="Fr";D5&ZÄHLENWENN($B$5:D5;"Fr");D5)
E6=WENN(LINKS(E5;2)="Fr";E5&ZÄHLENWENN($B$5:E5;"Fr");E5)
F6=WENN(LINKS(F5;2)="Fr";F5&ZÄHLENWENN($B$5:F5;"Fr");F5)
G6=WENN(LINKS(G5;2)="Fr";G5&ZÄHLENWENN($B$5:G5;"Fr");G5)
H6=WENN(LINKS(H5;2)="Fr";H5&ZÄHLENWENN($B$5:H5;"Fr");H5)
I6=WENN(LINKS(I5;2)="Fr";I5&ZÄHLENWENN($B$5:I5;"Fr");I5)
J6=WENN(LINKS(J5;2)="Fr";J5&ZÄHLENWENN($B$5:J5;"Fr");J5)
K6=WENN(LINKS(K5;2)="Fr";K5&ZÄHLENWENN($B$5:K5;"Fr");K5)
L6=WENN(LINKS(L5;2)="Fr";L5&ZÄHLENWENN($B$5:L5;"Fr");L5)
M6=WENN(LINKS(M5;2)="Fr";M5&ZÄHLENWENN($B$5:M5;"Fr");M5)
N6=WENN(LINKS(N5;2)="Fr";N5&ZÄHLENWENN($B$5:N5;"Fr");N5)
O6=WENN(LINKS(O5;2)="Fr";O5&ZÄHLENWENN($B$5:O5;"Fr");O5)
P6=WENN(LINKS(P5;2)="Fr";P5&ZÄHLENWENN($B$5:P5;"Fr");P5)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Gruß Matthias
Anzeige
AW: Gleiche Inhalte finden und ersetzen
23.05.2020 10:11:03
sam
Danke das würde funktionieren.
Allerdings würde ich dies gerne per VBA lösen können, die Daten immer wieder frisch importiert werden.
Lg.
AW: Gleiche Inhalte finden und ersetzen
23.05.2020 10:13:15
Hajo_Zi
es war ein XLSX DAtei, da können keine Makros drin sein.

halt Dich einfach raus, Du Forenclown
23.05.2020 10:19:00
Matthias
.
AW: halt Dich einfach raus, Du Forenclown
23.05.2020 13:32:52
sam
Danke
Nicht Du, sondern Hajo war gemeint !
23.05.2020 14:08:22
Helmut
dann eben VBA ... ;-)
23.05.2020 10:14:04
Matthias
Hi
Für Deine Bsp.Datei so:
Option Explicit Sub austausch() Dim x&, i& i = 1 For x = 2 To 16 If Cells(5, x) = "Fr" Then Cells(5, x) = "Fr" & i: i = i + 1 Next End Sub Gruß Matthias
Eine universelle VBA-Lösung
23.05.2020 10:16:10
Martin
Hallo Sam,
hier eine alternative VBA-Lösung:
Sub Durchnummerierung()
Dim dicCellValues As Object
Dim iLastCol As Long, i As Long
iLastCol = Cells(ActiveCell.Row, Cells.Columns.Count).End(xlToLeft).Column
Set dicCellValues = CreateObject("Scripting.Dictionary")
For i = 1 To iLastCol
With Cells(ActiveCell.Row, i)
If .Value  "" Then
If Not dicCellValues.exists(.Value) Then
dicCellValues.Add .Value, 1
Else
dicCellValues(.Value) = dicCellValues(.Value) + 1
End If
.Value = .Value & dicCellValues(.Value)
End If
End With
Next
Cells(1, 1).Resize(, iLastCol).EntireColumn.AutoFit
End Sub
Viele Grüße
Martin
Anzeige
ich bin nicht Sam! owT
23.05.2020 10:18:06
Matthias
Meine Antwort war aber an Sam gerichtet...
23.05.2020 10:21:27
Martin
...denn er hat den Beitrag aufgemacht und die Aufgabe gestellt. Also ist es richtig, dass du dich nicht angesprochen fühltst, Matthias
AW: Meine Antwort war aber an Sam gerichtet...
23.05.2020 10:30:10
Matthias
Hallo,
lernt endlich das Forum zu benutzen!
Du hast auf meinen Beitrag geantwortet.
Siehe Baumstruktur.
Diese Art sich in andere Zweige einzuklinken ist mir seit Jahren ein Dorn im Auge.
Gehe also im Forum auf "Von Heute"
Klicke den Beitrag vom Fragesteller an und antworte dort auf seine Frage.
Antworte aber bitte nicht auf meine Antwort an Sam.
Das ist nichts Persönliches gegen Dich!
Das möchte ich ausdrücklich erwähnen.
Gruß Matthias
Anzeige
Matthias, heul doch du Prinzessin....
23.05.2020 10:31:37
Oberschlumpf
anstatt selber zu heulen, ...
23.05.2020 10:58:55
Matthias
hättest Du ja eine Lösung anbieten können.
Hast Du aber nicht. Ich hab 2 Lösungen angeboten. Formel & VBA, und Du?
Stattdessen versuchst Du jetzt hier ne "Grüppchenbildung" zu organisieren? :(
Schon seltsam wie hier seit einiger Zeit einige wenige User ticken. Weiter so!
Nun geh selber heulen, Du Schlumpf.
Das hier ist doch kein Schw... messen, Matthias!
23.05.2020 11:17:21
Martin
Jetzt antworte ich mal auf deinem Niveau: Meine VBA-Lösung ist aber wesentlich besser als deine nur auf den Wochentag "Freitag" bezogene VBA-Lösung.
...aber ist das nicht absolutes Kindergartenniveau?!?!
Wollen wir nicht eigentlich anderen helfen und uns dabei selbst etwas üben? Ich bin immer gespannt, ob andere Forenmitglieder bessere Lösungen finden, auf die ich nicht gekommen wäre.
Viele Grüße
Martin
Anzeige
Freitag ist aber OK-Lt.Anfrage
23.05.2020 11:25:53
Helmut
Hier soll zb. immer der Eintrag "Fr" fortlaufend ersetzt werden.
Der erste mit Fr1
Der zweite mit Fr2
Gruß Helmut
Stimmt...
23.05.2020 11:36:26
Martin
...dann habe ich die Aufgabenstellung falsch verstanden und biete folgende Lösung an:
Sub Durchnummerierung()
Dim iLastCol As Long, i As Long
Dim iCounter As Long, strValue As String
iLastCol = Cells(ActiveCell.Row, Cells.Columns.Count).End(xlToLeft).Column
strValue = ActiveCell.Text
For i = 1 To iLastCol
With Cells(ActiveCell.Row, i)
If .Text = strValue Then
iCounter = iCounter + 1
.Value = .Value & iCounter
End If
End With
Next
Cells(1, 1).Resize(, iLastCol).EntireColumn.AutoFit
End Sub
...jetzt wird nur noch der Inhalt der markierten Zelle in der Zeile gesucht und durchnummeriert.
Viele Grüße
Martin
Anzeige
AW: Stimmt...
23.05.2020 13:31:43
sam
Hallo danke für die super Lösungen.
Wie kann ich diese jedoch setzen lassen, ohne die jeweiligen "Fr" auszuwählen?
Idealerweise wäre doch nur die entprechende Zeile zu markieren?
PS. Ich verstehen die Diskussion nicht. :(
LG
AW: Stimmt...
23.05.2020 13:56:11
Martin
Hallo Sam,
wenn wirklich ausschließlich die Freitage durchnummeriert werden sollen, dann wäre der Code für dich so besser:
Sub Durchnummerierung()
Dim iLastCol As Long, i As Long
Dim iCounter As Long
iLastCol = Cells(ActiveCell.Row, Cells.Columns.Count).End(xlToLeft).Column
strValue = ActiveCell.Text
For i = 1 To iLastCol
With Cells(ActiveCell.Row, i)
If .Text = "Fr" Then
iCounter = iCounter + 1
.Value = .Value & iCounter
End If
End With
Next
Columns(1).Resize(, iLastCol).AutoFit
End Sub
Mit der sinnlosen Diskussion hast du völlig Recht, eigentlich sollte man darauf überhaupt nicht eingehen.
Viele Grüße
Martin
Anzeige
Kindergarten ... , wer hat denn angefangen?
23.05.2020 11:36:16
Matthias
... war doch der Schlumpf
Ich habe Dir nur geschrieben Du solltest nicht auf meine Antwort antworten.
Schau Dir doch mal die Baumstruktur an.
Klicke auf "von heute". Dort siehst Du an wen Du geantwortet hast.
Meine VBA-Lösung ist aber wesentlich besser als deine nur auf den Wochentag "Freitag" bezogene VBA-Lösung.
Ich hatte explizit an Sam dazugeschrieben "für Deine Bsp.Datei"!
Ich halte mich an das was gefragt wird. Deinen Code habe ich nicht ausprobiert.
Zu sehr habe ich mich darüber geärgert, das Du an mich gepostet hast.
Zitat: Wollen wir nicht eigentlich anderen helfen
RICHTIG!
Dazu gehört aber auch das man sich nicht so gibt wie vorhin der Schlumpf.
Gruß Matthias
Anzeige
hach ja, immer sind die andern schuld
23.05.2020 13:11:44
Oberschlumpf
Matthias, warum hast du denn so ein Fass aufgemacht, dass man doch bitte an der ähh...richtigen Stelle...antworten soll?
Allein DAS find ich schon Kindergarten - von dir! :-P
Is doch egal, wer wann wo wieso antwortet...ich denke, wir alle - ja...gutschi gutschi-...du auch...tätschel...sind intelligent genug, dass wir auch falsch abgelegte Antworten richtig zuordnen könnten, oder? ;-)
So, Matthias, bist du nun schlauer als ich, und wirst auf dem Neviau nicht weiter antworten?
Ich bleibe neugierig :-)
Ciao
Thorsten
jep, weiß nicht mehr, wer das schrieb, aber wir wollen ja anderen helfen, die sich helfen lassen wollen ;-)
Anzeige
AW: Gleiche Inhalte finden und ersetzen
23.05.2020 13:35:54
GerdL
Moin
Sub Unit()
Const Txt As String = "Fr"
Dim C As Range
Dim i As Integer
For Each C In Selection
If C.Value = Txt Then
i = i + 1
C.Value = Txt & i
End If
Next
End Sub

Gruß Gerd
AW: Gleiche Inhalte finden und ersetzen
23.05.2020 20:02:56
sam
Perfekt. Dankeschön.

254 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige