Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1208to1212
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

Daten ersetzen

Daten ersetzen
Markus
Hallo zusammen,
ich habe eine Tabelle mit verschiedenen Reitern. In Reiter "Daten" befinden sich neben einer Nummer auch der jeweilige Vorname.
In den anderen Reitern (in der hochgeladenen Datei gibt es jetzt nur einen) befinden sich die Nummern. Jetzt müssen die Nummern durch die Vornamen ersetzt werden. Aber nicht mittles Formel sondern als Wert.
Wer kann mir hier helfen? Bin kein VBA-Experte.
Hier die Datei:
https://www.herber.de/bbs/user/74542.xls
Vielen Dank!
Viele Grüße aus Köln
Markus

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Fragen
25.04.2011 20:28:55
hary
Hallo Markus
Sind noch Fragen offen. Sollen immer alle Tabellen abgeklappert werden/ kommen auch neue Nummern dazu/was soll sein wenn kein passender Name zur Nummer/ wei soll der Code ausgefuehrt werden(nach Eintrag oder Button.
gruss hary
AW: Daten ersetzen
25.04.2011 20:32:01
Josef

Hallo Markus,
füge in "Tabelle1" einen Commandbutton ein und kopiere in das Modul der Tabelle1 folgenden Code.
' **********************************************************************
' Modul: Tabelle2 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************
Option Explicit
Private Sub CommandButton1_Click()
  Dim objSh As Worksheet
  Dim lngRow As Long, lngLast As Long
  Dim vntRet As Variant
  For lngRow = 2 To Me.Cells(Rows.Count, 1).End(xlUp).Row
    If Cells(lngRow, 1) <> "" And Cells(lngRow, 2) <> "" Then
      For Each objSh In Me.Parent.Worksheets
        If Not objSh Is Me Then
          vntRet = Application.Match(Me.Cells(lngRow, 1), objSh.Columns(4), 0)
          If IsNumeric(vntRet) Then
            objSh.Cells(vntRet, 4) = Me.Cells(lngRow, 2)
            Me.Cells(lngRow, 3) = "OK"
            Exit For
          End If
        End If
      Next
    End If
  Next
End Sub



« Gruß Sepp »

Anzeige
AW: Daten ersetzen
25.04.2011 20:39:24
Markus
Hallo Sepp,
danach habe ich gesucht. Klappt bestens. Vielen Dank!
@ Hary: Dir auch vielen Dank für das Hilfsangebot.
Viele Grüße aus Köln
Markus
AW: Daten ersetzen
26.04.2011 08:09:05
Markus
Hallo Sepp,
ich muss Dich noch einmal belästigen. Das Makro funktioniert einwandfrei, es liegt wohl eher an meiner
Beschreibung.
Ich vermute, dass Makro fragt jeden Nummer nur einmal ab und ergänzt dann den Vornamen. Das Problem ist nun, dass in den Reitern die Nummern aber mehrfach vorkommen. Demnach müsste vermutlich eine Schleife die Namen einzeln abprüfen und alle ersetzen. Lediglich im Reiter "Daten" ist jeder Vorname und Nummer einmal nur vorhanden.
Derzeit muss ich für jede Änderung einzeln den Button drücken.
Nochmals danke für Deine Hilfe!
Viele Grüße aus Köln
Markus
Anzeige
Alternative Lösung ...
26.04.2011 08:56:21
Matthias
Hallo Markus
Tabelle("Daten") steht als erstes Sheet ganz links Index(1) !
Dim x&, i&, Strg$, MyVorName$
For x = 2 To 5 'anpassen
Strg = Tabelle2.Cells(x, 1).Value
MyVorName = Tabelle2.Cells(x, 2).Value
For i = 2 To Worksheets.Count
If Worksheets(i).Name  "Daten" Then
Worksheets(i).Columns("D:D").Replace What:=Strg, Replacement:=MyVorName, LookAt:=xlPart,  _
SearchOrder:=xlByRows, MatchCase:=False
End If
Next
Next
https://www.herber.de/bbs/user/74546.xls
Userbild
Anzeige
AW: Daten ersetzen
26.04.2011 09:43:23
fcs
Hallo Markus,
ich hab Sepps Vorschlag mal in die von dir gewünschte Richtung umgestellt.
Makro bitte in einem allgemeinen Modul speichern.
Du kannst das Makro dann beliebig starten.
oder
Im Blatt Daten eine Schaltfläche aus Symbolleiste "Formular" einfügen und dann das Makro der Schaltfläche zuweisen.
Gruß
Franz
'Makro in einem allgemeinen Modul
Sub NummernErsetzen()
Dim sMsgTxt As String
Dim objSh As Worksheet, objSh_Data
Dim lngRow As Long
Dim vntRet As Variant
Set objSh_Data = Worksheets("Daten")
For Each objSh In ActiveWorkbook.Worksheets
If Not objSh Is objSh_Data Then
With objSh
For lngRow = 2 To .Cells(.Rows.Count, 4).End(xlUp).Row
If .Cells(lngRow, 4)  "" Then
vntRet = Application.Match(.Cells(lngRow, 4), objSh_Data.Columns(1), 0)
If IsNumeric(vntRet) Then
.Cells(lngRow, 4) = objSh_Data.Cells(vntRet, 2)
Else
If IsNumeric(.Cells(lngRow, 4).Text) Then
sMsgTxt = sMsgTxt & Chr(13) & .Name & " - " & .Cells(lngRow, 4).Text
End If
End If
End If
Next
End With
End If
Next
If sMsgTxt = "" Then
MsgBox "Alle Nummern durch Vornamen ersetzt"
Else
MsgBox "Nummern durch Vornamen ersetzt. Einige Nummern konnten nicht ersetzt werden." _
& vbLf & "Tabelle - Nummer" & sMsgTxt
End If
End Sub

Anzeige
AW: Daten ersetzen
26.04.2011 18:38:37
Markus
Hallo Leute,
ich bin begeistert über die zahlreiche Hilfe hier im Forum. Echt Klasse!
Ich habe mich für die sichere Variante von Dir, Matthias, entschieden.
Vielen dank für Eure Hilfe!
Viele Grüße aus Köln
Markus

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige