Fuchs Geschrieben 12. Dezember 2002 Geschrieben 12. Dezember 2002 hallo Leute! ich hab da eine aufgabe von meiner abteilungsleiterin bekommen, die mir ein wenig kopfzerbrechen bereitet. Also ich soll eine exel tabelle erstellen, wo es einen Bereich gibt, wo mehrere zahlen drin stehen. So von 1-8. Aber immer durcheinander. Jetzt sollte das so laufen, dass ich in ein Feld einen namen eingebe und dann in der Matrix alle 1sen durch diesen namen ersetzt werden, d.h. automatisch nach dem Eintrag des Namen. Das ganze dann mit einem zweiten Namen und dann allle 2 ersetzen usw. geht das irgendwie??? Mir fällt echt nichts mehr ein. Wäre etwas dringender. Vielen vielen dank. Hoffe es war einigermaßen verständlich. Zitieren
Keksfahrer Geschrieben 12. Dezember 2002 Geschrieben 12. Dezember 2002 und wenn das ganze in EXCEL über eine funktion läuft? bsp ERSETZEN. damit wird nach der zahl (1) gesucht und dann der name (müller) eingesetzt... Zitieren
Fuchs Geschrieben 12. Dezember 2002 Autor Geschrieben 12. Dezember 2002 dann müsste ich ja hinterher suchen und ersetzen sagen, aber soll ja nicht der Fall sein. es soll automatisch gehen. Das ist ja das Problem. Zitieren
Terran Marine Geschrieben 12. Dezember 2002 Geschrieben 12. Dezember 2002 Hallo, kannst du nicht von die Felder 1-8 von vornerein auf andere Felder verweisen lassen. In diesen "anderen" Feldern stehen anfangs die Zahlen 1-8, wenn eine Name hinzugefügt werden soll, muss der Name in diesen "anderen" Feldern eingetragen werden. In der Haupttabelle wird der Wert durch den Verweis automatisch verändert. Gruß Terran Marine Zitieren
developer Geschrieben 12. Dezember 2002 Geschrieben 12. Dezember 2002 Das einfachste wäre wohl ein Makro in VBA in dem du die Spalte von oben nach unten, Zelle für Zelle abwanderst und nach den Zahlen suchst, wenn du sie gefunden hast ersetzt du die Zahl durch einen String z.B. "WErner Müller" oder eine Referenz auf eine andere Zelle z.B. A1. Solltest du dich in VBA nicht auskennen sag kurz bescheid. Zitieren
Fuchs Geschrieben 12. Dezember 2002 Autor Geschrieben 12. Dezember 2002 das hört sich ja gnaz gut an, aber wie soll ich das verstehen? versteh nicht ganz was du meinst. ich hab die erste spalte von 1-8 nummeriert. Dann muss ich ja jetzt aus der Tabelle von jeder einzelnen Zelle auf diese Spalte verweisen. das ist doch sehr müselig oder hab ich da was falsch verstanden? Zitieren
Fuchs Geschrieben 12. Dezember 2002 Autor Geschrieben 12. Dezember 2002 kenne mich in VBA absolut nicht aus Zitieren
Terran Marine Geschrieben 12. Dezember 2002 Geschrieben 12. Dezember 2002 Originally posted by Fuchs das hört sich ja gnaz gut an, aber wie soll ich das verstehen? versteh nicht ganz was du meinst. ich hab die erste spalte von 1-8 nummeriert. Dann muss ich ja jetzt aus der Tabelle von jeder einzelnen Zelle auf diese Spalte verweisen. das ist doch sehr müselig oder hab ich da was falsch verstanden? Ein gewisser Mehraufwand ist schon notwendig, aber wenn du die Verweise mit Copy&Paste verteilts dürfte es eigentlich relativ flott gehen. Die VBA Lösung ist wahrscheinlich komfortabler (aber auch aufwendiger und schwerer zu verstehen). Gruß Terran Marine Zitieren
developer Geschrieben 12. Dezember 2002 Geschrieben 12. Dezember 2002 Hier ein wenig Code... Ist dann das noch das richtige Forum ?!?! Sub Macro1() ' ' Macro1 Macro ' Macro recorded 12.12.2002 by CSA ' Dim i As Long Do i = i + 1 Range("A" & i).Select 'Spalte A, Zelle i selektieren If ActiveCell.FormulaR1C1 = "1" Then 'Wenn aktive Zelle = 1 ActiveCell.Formula = "Bla" 'Dann aktive Zelle = "Bla" End If Loop Until i > 20 ' Bis zur 20. Zeile End Sub Du musst nur noch das "Bla" durch den NAmen ersetzen und diesen drei-zeiligen-Block kopieren und statt "1" dann "2" usw. einsetzen... LIKE: If ActiveCell.FormulaR1C1 = "1" Then 'Wenn aktive Zelle = 1 ActiveCell.Formula = "Bla" 'Dann aktive Zelle = "Bla" End If If ActiveCell.FormulaR1C1 = "2" Then 'Wenn aktive Zelle = 2 ActiveCell.Formula = "Bla2" 'Dann aktive Zelle = "Bla2" End If If ActiveCell.FormulaR1C1 = "3" Then 'Wenn aktive Zelle = 3 ActiveCell.Formula = "Bla3" 'Dann aktive Zelle = "Bla3" End If Ja ja, ich hätte auch eine Zählschleife nehmen können... Zitieren
Fuchs Geschrieben 12. Dezember 2002 Autor Geschrieben 12. Dezember 2002 kann ich jetzt noch in diesem Makro eine zelle einlesen und das dann ausgeben?? SO das ich nicht in dem Code in den Namen schreiben muss, sondern in der Tabelle irgendwo?? Das wäre noch das letzte anliegen was ich hätte. sonst funktioniert es super. danke nochmal. Zitieren
developer Geschrieben 12. Dezember 2002 Geschrieben 12. Dezember 2002 Schau mer mal... Du müsstes wohl den Inhalt einer Zelle in eine String-Variable Cachen... In Spalte A stehen nun meine Namen, in Spalte B stehen die Zahlen. Sub Macro1() ' ' Macro1 Macro ' Macro recorded 12.12.2002 by CSA ' Dim i As Long Dim stName As String Do i = i + 1 Range("B" & i).Select 'Spalte B, Zelle i selektieren If ActiveCell.FormulaR1C1 = "1" Then 'Wenn aktive Zelle = 1 Range("A1").Select 'Selektiere Zelle, in dem der einzusetzende Name steht stOld = ActiveCell.FormulaR1C1 'Speichere den Namen in eine Variable Range("B" & i).Select 'Wähle wieder die ursprüngliche Zelle an ActiveCell.Formula = stName 'Ersetze den alten Wert (z.B. 1) durch den neuen Wert End If Loop Until i > 20 ' Bis zur 20. Zeile End Sub Ist wohl nicht optimal aber funzt. Zitieren
developer Geschrieben 12. Dezember 2002 Geschrieben 12. Dezember 2002 Upsi... Das "stOld" muss natürlich "stName" heissen.... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.