Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

formatierung in formel einbaun
#11
servus, entschuldige bitte aber war leider gesch. unterwegs die letzten tage.

danke erstmal für den code und die erklärung, aber bin mir nich sicher (außer ich versteh den code falsch)
ob du mich richtig verstanden hast:

hab dir aus dem Grund einmal einen Auszug der Excel datei hochgeladen. Makros musst nicht aktivieren.
Damit hast dann auch gleich die richtigen Zellen

es geht dann um den Reiter Vorlage und die Rot-geschriebenen Felder.
Hier habe ich mitlerweile zwar eine Formel gefunden  aber das "x" unter dem Reiter "sonstige Adressen" kann eben an mehr stellen stehen und muss dem entsprechend auch andere Zellen kopieren.

Gruß und danke
lion
Antworten Top
#12
Hallöchen,

das würde im Prinzip so gehen:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Wenn der Eintrag der geaenderten Zelle ein x ist, dann
If Target.Value = "x" Then
'Ereignisreaktion ausschalten
Application.EnableEvents = False
'Daten aus X1 nach A1 uebernehmen
Sheets("Vorlage").Range("B5").Value = Target.Offset(0, 2).Value
'Ereignisreaktion einschalten
Application.EnableEvents = True
'Ende Wenn die Adresse der geaenderten Zelle Y1 ist, dann
End If
End Sub

Der Code schaut, ob in der Eingabezelle ein x eingetragen wurde, und überträgt dann den Inhalt der Zelle zwei rechts daneben nach Vorlage B5. Das x kannst DU sonstwo eingeben, ob das dann Sinn macht, sei erst mal dahingestellt. Man könnte, wie im ersten Beispiel, die Eingabezelle(n) auch wieder einschränken, z.B. auf die Spalten B, AB usw, oder auch enger auf die Zellen B2, B4, AB2, AB4 usw. Man könnte die Zellen auch zu einem Bereich zusammenfassen (Zellen markieren, im Adressfeld einen Namen eingeben) und dann mit dem Namen arbeiten.

Der Code entfernt auch nicht eventuell vorhandene x - Einträge. Da wäre eine engere Definition der Eingabezellen von Vorteil, z.B. das mit dem gerade beschriebenen Namen.

Probiers mal und sag, wie es weiter gehen soll Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#13
irgendwie steh ich aufn schlauch ... wenn ich mir so den code durchlese

???? Daten aus X1 nach A1 uebernehmen ????

und wo müßte ich den code einfügen ? in der Arbeitsmappe bei Vorlage oder sonstige Adressen?
oder gar bei die module ?

sorry aber was codes angeht kann ich nichts selbst ändern wenn das deine idee war .. ich check da so gut wie null ...
ich seh da nur welche zellen du angibst und da kommt ich mit den oben gennanten nicht klar.

ich bin echt froh das du mir hilfst aber vill reden wir auch immernoch aneinander vorbei ;)

das ganze ist ein Rechnungsformular ... und bei "Vorlage" soll in das adressfeld und ins Kundennummernfeld immer die Werte aus "sonstige adressen" eingegeben werden.

das "X" in der "Vorlage" kann nur in den Zellen B2 / B4 / B6 / B8 / B10 stehen ( es sollen später evtl noch weitere Vorlage geben 1&2 aber die beziehen ihre Adressen und nummern von anderen Zellen in "sonstige Adressen"

wenn "X" auf "B4" steht, soll er "C4 von sonstige adressen" ins Kundennummerfeld "V9 in der "Vorlage" kopieren + "D4 von sonstige adressen" ins Adressfeld von "B5 in der Vorlage"
gleichzeitig muss er aber halt auch die anderen B2 /B4/ B8 & B10 abfragen ob das X da steht und gegebenenfalls ihre daten kopieren.
Antworten Top
#14
Hallöchen,

der Code muss in das Codemodul vom Blatt "Adressen_sonstige" Die Kopie der Zahl hab ich übersehen.

Also, wenn Du im Blatt "Adressen_sonstige" in B2 ein x eingibst, soll der Inhalt von C2 auf das Blatt "Vorlage" Zelle V9 und der Inhalt von D2 auf das Blatt "Vorlage" B5. Und wenn Du ein weiteres x anderswo eingibst, z.B. in B4, werden die Daten im Blatt Vorlage überschrieben.
Das passt auch zu Deinem Satz
Zitat:wenn "X" auf "B4" steht, soll er "C4 von sonstige adressen" ins Kundennummerfeld "V9 in der "Vorlage" kopieren + "D4 von sonstige adressen" ins Adressfeld von "B5 in der Vorlage"

Wenn Du in B2 und B4 ein x hast, wo sollen dann die Daten hin? Du schreibst
Zitat:gleichzeitig muss er aber halt auch die anderen B2 /B4/ B8 & B10 abfragen ob das X da steht und gegebenenfalls ihre daten kopieren.
Wenn ich jetzt noch wüsste, wo die eingefügt werden sollen ...

Gibt ja min. 3 Möglichkeiten.
Ich überschreibe B5
Ich schreibe es woanders hin
Oder in Vorlage B5 soll alles zusammengemischt werden?

Na ja, und man könnte nach dem Eintrag in B5 das Blatt kopieren und dann den nächsten Eintrag in Vorlage B5 einfügen und wieder kopieren usw, man hätte also für jeden Eintrag ein Blatt.

Oder ...

Wenn Du in B2 das x wegnimmst und das in B4 drin lässt, was soll dann eigentlich passieren?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#15
ahhh da is der wurm :D es gibt nur ein X für die erste vorlage das zweite und dritte X wären  bei sonstige Adressen die anderen spalten so wie die Überschriften lauten vorlage 1 / 2 und 3 und fur die gibt es dann auch einen eigenen reiter wo die daten hin übertragen werden sollen (vorlage_2 und vorlage_3) aber auch hier gilt nur jeweils ein X. 

das ganze is für  kunden  gedacht die einmal im halben jahr vill anrufen und die teilen sich dann eben ein Vorlage. 
und das mal zwei von denen gleichzeitig anrufen kann ich mir nicht vorstellen ;P 

ps geb dir auch gern meine handy nummer wenns dir lieber is.  sowas per text zu erklären is teilweise immer bisl blöd weil fur einen selbst is ja alles glas klar :D



Edit:
Absolut identischen Beitrag von 16:08 gelöscht
Antworten Top
#16
Hallo,

hier nun ein Code, der die Einträge auf unterschiedlichen Blättern platziert. Ich habe hier mal angenommen, dass die Vorlage für B2 auch entsprechend heißt, also Vorlage_B2. B4 wäre dann Vorlage_B4. Die Blätter muss es aber schon geben, sonst kommt eine Fehlermeldung.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Wenn der Eintrag der geaenderten Zelle ein x ist, dann
If Target.Value = "x" Then
'Ereignisreaktion ausschalten
Application.EnableEvents = False
'Daten in die Vorlage nach V9 und B5 uebernehmen
On Error GoTo errorhandler
With Sheets("Vorlage_" & Replace(Target.Address, "$", ""))
   .Range("V9").Value = Target.Offset(0, 1).Value
   .Range("B5").Value = Target.Offset(0, 2).Value
End With
errorhandler:
'Ereignisreaktion einschalten
Application.EnableEvents = True
'Bei Fehler Meldung ausgeben
If Err.Number <> 0 Then MsgBox "Fehler! Bitte Blatt Vorlage_" & Replace(Target.Address, "$", "") & " kontrollieren!"
'Ende Wenn die Adresse der geaenderten Zelle Y1 ist, dann
End If
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#17
ich würde dir gerne sage das du mich diesmal richtig verstanden hast ... aber leider nein ... dann könnte ich ja gleich wieder jedem einen eigenen reiter geben :

schau mal ich hab dir hier ein screenshot hochgeladen.

oben steht vorlage / vorlage_2 und vorlage_3
darunter kommen jemweils 5 kästchen in der gleichen farbe wo adressen stehen.
links daneben die kundennummer
und ein kästchen um ein X einzugeben.

und nur die adresse und KdNr wo das X is soll in die jeweiligen Vorlage übertragen werden.

PS: die Reiter heißen so wie oben beschrieben.
Antworten Top
#18
Hallöchen,

dann hoffentlich so.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Variablendeklaration
'Integer
Dim iCnt% 'Fuer Schleife
'String
Dim strVorlage 'Fuer Vorlagenname
'Wenn der Eintrag der geaenderten Zelle ein x ist und die Zeile 4, 6, 8 oder 10, dann
If Target.Value = "x" And (Target.Row = 2 Or Target.Row = 4 Or Target.Row = 6 Or Target.Row = 8 Or Target.Row = 10) Then
'Auswahl je nach Spalte
Select Case Target.Column
'Spalte 2 = B ergibt Vorlage
Case 2: strVorlage = "Vorlage"
'Spalte 28 = AB ergibt Vorlage_2
Case 28: strVorlage = "Vorlage_2"
'Spalte 74 = BB ergibt Vorlage_3
Case 74: strVorlage = "Vorlage_3"
'bei allen anderen Spalten Makro verlassen
Case Else: Exit Sub
'Ende Auswahl je nach Spalte
End Select
'Ereignisreaktion ausschalten
Application.EnableEvents = False
'alle "alten" Eintraege in den "X"-Zellen entfernen
'Schleife ueber Eintraege ab Zeile 2 bis Zeile 10, Schrittweite 2
For iCnt = 2 To 10 Step 2
'Wenn nicht die geaenderte Zelle, dann Zelle leeren
If Target.Row <> iCnt Then Cells(iCnt, Target.Column).Value = ""
'Ende Schleife ueber Eintraege ab Zeile 4 bis Zeile 10, Schrittweite 2
Next
'Daten in die Vorlage nach V9 und B5 uebernehmen
On Error GoTo errorhandler
'Mit der Vorlage
With Sheets(strVorlage)
'Zahl uebernehmen
.Range("V9").Value = Target.Offset(0, 1).Value
'Text uebernehmen
.Range("B5").Value = Target.Offset(0, 2).Value
'Ende Mit der Vorlage
End With
errorhandler:
'Ereignisreaktion einschalten
Application.EnableEvents = True
'Bei Fehler Meldung ausgeben
If Err.Number <> 0 Then MsgBox "Fehler! Bitte Blatt Vorlage_" & Replace(Target.Address, "$", "") & " kontrolieren!"
'Ende Wenn die Adresse der geaenderten Zelle Y1 ist, dann
End If
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • lion7123
Antworten Top
#19
jetzt hammas ;)  funktioniert super und macht genau das was ich wollte!  tausend dank für dein Engagement :)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste