Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
248to252
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
248to252
248to252
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ersetzen automatisieren

Ersetzen automatisieren
25.04.2003 11:33:40
Christoph Pinzl
Liebe Forumsleser,
bitte um Hilfe bei folgendem Problem:
Habe eine Liste/Tabelle mit mehreren Spalten. In einer Spalte (z.B. Spalte A) wiederholen sich Werte unregelmäßig.
Spalte A:
Äpfel
Birnen
Orangen
Äpfel
Orangen
(...)
Nun möchte ich diese Werte durch festgelegte Zahlen ersetzen:
Spalte A neu:
1 (statt Äpfel)
2 (statt Birnen)
3 (statt Orangen)
1 (statt Äpfel)
3 (statt Orangen)
Da es mehrere hundert verschiedene Werte gibt, scheidet klassisches Suchen-Ersetzen aus. Wie läßt sich die Sache lösen? Vielen Dank schon mal.
Grüße von
Christoph Pinzl



18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Ersetzen automatisieren
25.04.2003 11:46:55
Mike E.

Hallo Christoph,

zunächst plaziere eine Schaltfläche in der Tabelle und weise ihr folgenden Code zu:


Dim i as Integer

ActiveSheet.Cells(1,1).Select
For i = 1 To Cells.SpecialCells(xlLastCell).row

If Cells(i,1).Value = "Äpfel" Then Cells(i,1) = 1
If Cells(i,1).Value = "Birnen" Then Cells(i,1) = 2
If Cells(i,1).Value = "Orangen" Then Cells(i,1) = 3

Next i


Gruß,Mike


Re: Ersetzen automatisieren
25.04.2003 11:56:38
Mike E.

Hallo Christoph,

zum Thema "Code zuweisen":

falls du die Steuerelement-Tollbox noch nicht in der Excel-Menueleiste hast, dann mit der rechten Maus auf selbige klicken und "Steuerelement-toolbox" auswählen. Von dort ziehst du die "Befehlsschaltfläche" auf irgendeine Position des Tabellenblattes. Sodann mit der rechten Maustaste auf dieses Symbol und "Code anzeigen" auswählen. Es öffnet sich nun der VB-Editor mit den Zeilen

Private Sub CommandButton1_Click()

End Sub

Zwischen diese Zeilen kommt dann mein Code.
Im Anschluss aktivierst du wieder die Exceltabelle und dort findest du eine weitere kleine Schaltfläche mit einem blauen Dreieck darauf. Einfach d'raufklicken, sodass es verschwindet.
Nun ist der Button Einsatzbereit.

den VB-editor kannst du, wenn du willst, wieder schließen (Speichern des Codes funktioniert auch über Excel).

Viele Grüße
Mike

Anzeige
Hmmmmm
25.04.2003 12:01:25
Andreas Walter

Die Antwort von Mike ist nicht so toll, da es hundert versch. Wert gibt.

Es gibt sicherlich ein besserer Weg, aber wie wäre es mit

Nehmen wir mal an, alles ist in Spalte-A und Spalte-B ist frei.

Zuerst die Tabelle duplizieren.

Folgende Formel in B1 und runterziehen
=ZÄHLENWENN($A$1:A1;"="&A1)

Alle die, bei denen eine 1 ist sind die ersten

Jetzt die Formeln durch die Werte ersetzen
Spalte-B markieren STRG-C in die Zwischenablage
B1 markieren - Inhalte einfügen - Werte

Jetzt A1:Bnnn sortieren nach B
Uns interssieren nur die '1', die wir dann nach oben bringen.

Und dann.... hmmmmm Sverweis

Hmm es muss was besseres geben

Anzeige
Re: Hmmmmm
25.04.2003 12:20:54
Hans W. Hofmann

Es gibt im Archiv mehrere Lösungen, die sich mit dem Handling von Dubletten beschäftigen. Eine davon könnte man umlernen...

Spalte druchgehen
Werte in Collection speichern
Spalte durchgehen und Werte ersetzen


Gruß HW

Holzweg ?
25.04.2003 12:33:01
Panicman

Hallo Andreas, Hallo Hans,

seit Ihr nicht auf dem Holzweg ??
in dem Post sthet doch nichts von Dubletten raussuchen, sondern nur von bestimmten Text durch eine festgelegte Zahl ersetzen.

per Formel und Hilfsspalte ein Klassiker für Sverweis()
per VBA müsste das aber auch ohne Hilfsspalte zu lösen sein.

Ich kann leider keine genaueren Angaben machen, da ich nicht weiß ob die "festgelegten Zahlen" irgendwo als Überleitung stehen.

Schönes Wochenende

Holger

Anzeige
Re: Holzweg ?
25.04.2003 12:36:39
Mike E.

Hallo,

das kommt der Sache sicher näher, ist allerdings nicht ganz sauber, alldieweil sich die erste Zeile nicht ändert. Ansonsten wird hübsch in Zahlen umgewandelt.
Falls jemand eine Idee hat, aufbauend auf folgendem Code, ebendiesen zu vervollständigen, wäre auch ich dankbar.

Nette Grüße
Mike

Dim Vari As String
Dim VariNeu As Integer
Dim i As Integer, s As Integer


ActiveSheet.Cells(1, 1).Select
For i = 1 To Cells.SpecialCells(xlLastCell).Row

Vari = Cells(i, 1).Value
VariNeu = i
For s = 2 To Cells.SpecialCells(xlLastCell).Row

If Cells(s, 1) = Vari Then Cells(s, 1) = VariNeu

Next s


Next i

Anzeige
Das wäre nicht das letzte Mal ;-) (nT)
25.04.2003 12:36:59
Andreas Walter

Das wäre nicht das letzte Mal ;-) (nT)

Re: Holzweg ?
25.04.2003 13:01:53
Hans W. Hofmann

Nur musst Du erstmal wissen welche Texte (die mehrfach vorkommen) überhaupt vorgegeben sind. Dann musst Du jedem vorkommenden Text einen eindeutigen numerischen Wert zuweisen. Und zu guter letzt kannst Du die Ersetzung vornehmen.
Oder?

Gruß HW

Re: Ersetzen automatisieren
25.04.2003 13:14:05
Christoph Pinzl

Wie Andreas ganz richtig feststellt: Bei mehreren hundert "Obstsorten" nicht so gut zu handhaben. Dann könnte ich ja gleich ganz schlicht über Strg-H Ersetzen arbeiten.

Re: Holzweg ?
25.04.2003 13:28:30
Christoph Pinzl

Ja, also die Dubletten sind, glaube ich auch, nicht das Problem. Falls das etwas bringt: Ich könnte ohne größere Probleme eine eigene Spalte (in einer eigenen Tabelle?) aller "möglichen" Werte anlegen (egal, wie häufig sie vorkommen) und zugeordnet dazu noch eine Spalte mit den gewünschten Zahlen:
SpalteA - SpalteB
Äpfel-1
Birnen-2
Orangen-3
Zitronen-4
(...)
Also in etwa so: Vergleiche die Werte dieser TabelleX.SpalteA. mit den Werten der TabelleXY.SpalteXY der Reihe nach. Findest Du übereinstimmende Werte, dann ersetze in TabelleXY.SpalteXY diesen Wert durch den zugehörigen in TabelleX.SpalteB. Leider spricht Excel kein Deutsch, sondern nur VB...

Anzeige
Re: Holzweg ?
25.04.2003 13:31:17
Mike E.

Hallo Christoph,

schau dir mal mein letztes Posting an. Das ist zwar (noch nicht) perfekt, es funktioniert jedoch.
(für Komplettierungshilfe bin ich dankbar)

Viele Grüße
Mike

Re: Holzweg !
25.04.2003 13:39:00
Hans W. Hofmann

Ich hab auch nicht gesagt das Dubletten ein Problem sind, ich hab gesagt das das Handling von Dubletten das gleiche Problem beschreibt.

Gruß HW

Hier mal meine umgelernete Dublettensuche:


der Formelweg
25.04.2003 14:00:17
Panicman

Re: Holzweg ?
25.04.2003 14:02:17
Christoph Pinzl

Funktioniert grundsätzlich. Nur woher stammen die Zahlen, das ist mir nicht klar? Das Script weist zwar Zahlen zu, aber nicht die gewünschten?
Die fehlende erste Zeile wäre kein Problem.

Anzeige
Re: Ersetzen automatisieren
25.04.2003 14:05:09
Christoph Pinzl

Dankeschön für die Einweisung. Irgendwie habe ich es bisher noch nie geschafft, so eine Befehlsschaltfläche in Excel aktiv zu kriegen. Heißt, wenn ich draufklicke (linke Maustaste) öffnet sich immer der Code. Die Schaltfläche mit blauem Dreieck gibts bei mir allerdings auch nie, taucht nicht auf (oder bin ich blind?).
Bisher lasse ich das Script halt immer direkt aus dem VB-Editor laufen.

Re: der Formelweg
25.04.2003 15:11:25
Christoph Pinzl

Na jetzt habe ich ja diverse Lösungen. Am einfachsten funktioniert "der Formelweg", genau so etwas habe ich gesucht. Vielen Dank allen Beteiligten für die Hilfe.

Re: Ersetzen automatisieren
25.04.2003 15:47:41
jolly

Keine Ahnung ob es das ist, was Du suchst. Funzt in Spalte A

Gruß

jolly


Dim i, b, j, lR As Integer
Dim a As String

Sub test()
b = 1
lR = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row


For j = 1 To lR
a = Cells(j, 1)
'MsgBox (VarType(a))
'MsgBox (VarType(b))
If VarType(a) <> VarType(b) Then
test1 (a)
End If
Next j

End Sub

Sub test1(a)

lR = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

For i = j To lR
'MsgBox (Cells(i, 1))
If Cells(i, 1).Value = a Then
Cells(i, 1).Value = b
End If
Next i
b = b + 1
End Sub

Anzeige
Bitte um Feedback ~
25.04.2003 15:51:51
jolly

noch mit einer For Schleife umschliessen wegen Spalten.

Gruss

jolly

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige