Registriert seit: 01.08.2019
Version(en): 2007
17.11.2019, 19:31
(Dieser Beitrag wurde zuletzt bearbeitet: 17.11.2019, 19:31 von Marvin26.)
Hallo, ich habe eine Datei zusammengestellt wo ich noch etwas Hilfe benötige. In Spalte A sind die Quelldaten - in der Regel mit einem 25er Abstand. In Spalte D (1-10) sind die Suchbedingungen; in Spalte C ist die Formel um die Suchbedingung aus D in Spalte A zu finden:
=WENN(RECHTS(D2;14)="nicht gespielt";"";SUMME(ZEILE(A:A)*((A:A)=D2&".")))
In den Spalten E;F;G usw. werden die Quelldaten eingefügt, in der Art wie "Gib Wert aus Spalte A; Zeile 41+1" (+2, +3 usw) Nun ist es so, dass die Quelldaten manchmal nicht vollständig ist, weil ein Wert fehlt - daher auch der 24er Abstand bei 5 zu 6.
Ist es möglich in Excel eine Zelle automatisch einfügen zu lassen, wenn der Abstand 24 beträgt. Also eine Zelle in A142.
EDIT:
Da ich die Datei nicht hochladen kann um es sich besser ansehen zu können, formuliere ich meine Frage anders: Ist es möglich in Excel eine Zelle automatisch mit Bedingung einfügen zu lassen: Wenn D4-D3 = 24 Dann füge in A??(Spaltenwert steht dann in D3) eine Zelle ein.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hi Marvin,
dafür würdest Du ein Makro benötigen. Sollen die tangierenden Daten dann nach rechts oder unten geschoben werden und betrifft das jede Zelle in Spalte D, also z.B. D4-D3, D5-D4, D6-D5 usw und welcher Bereich ist zu untersuchen, also z.B. D2:D100 oder bis zur letzten gefüllten Zelle in Spalte D oder ...?
. \\\|/// 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:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• Marvin26
Registriert seit: 01.08.2019
Version(en): 2007
Die Zellen müssten dann immer in A nach unten eingefügt werden, Es geht von D2 bis D35 und der Abstand ist jeweils zwischen 2 benachbarten Zellen (also 34 mal)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen, probier das mal an einer Kopie aus. Wenn z.B. in D5 die Differenz 24 ist, wird D5 und alles was darunter kommt durch das Einfügen einer Zelle eine Zelle nach unten geschoben. Falls Du irgendwo Formeln hast, verschieben sich eventuelle Bezüge auf Saplte A ggf. auch mit. Code: Option Explicit
Sub test() Dim iCnt% For iCnt = 3 To 35 'Wenn D4-D3 = 24 'Dann fuege in A??(Spaltenwert steht dann in D3) eine Zelle ein. If Cells(iCnt, 4) - Cells(iCnt - 1, 4) = 24 Then Cells(iCnt, 1).Insert Shift:=xlDown Next End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 01.08.2019
Version(en): 2007
Er hatte jetzt Zellen eingefügt, aber nicht an der richtigen Stelle. In Spalte C6 steht 141 in C7 steht 165 - dann müsste er in A142 eine Zelle einfügen. Makro hat aber in A7 eine Zelle eingefügt.
Ich kann das Makro auch nicht wirklich deuten, so dass ich es nicht bearbeiten kann. (Woran kann man erkennen, dass er sich auf Spalte D bezieht?)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
17.11.2019, 21:19
(Dieser Beitrag wurde zuletzt bearbeitet: 17.11.2019, 21:20 von schauan.)
Hallöchen, also D ist der 4. Buchstabe im Alphabet … Cells(zeile, spalte)
. \\\|/// 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:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• Marvin26
Registriert seit: 01.08.2019
Version(en): 2007
17.11.2019, 21:30
(Dieser Beitrag wurde zuletzt bearbeitet: 17.11.2019, 21:30 von Marvin26.)
If Cells(iCnt, 3) - Cells(iCnt - 1, 3) = 24 Then Cells(iCnt, 1).Insert Shift:=xlDown
Gut, verändern kann ich die Spaltenwerte zumindest, habe aber immer noch das Problem, dass er die Zelle nur in der Zeile eingügt wo er den "Fehler" gefunden hat (3-35); nicht aber den Wert aus C (z.B. C6 = 141(+1)) er also in A142 die Zelle einfügt.
EDIT: Muss man was bei dem iCnt beachten, dass man das Makro nur zum laufen bringt, wenn eine bestimmte Zelle aktiv ist oder so?
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
im Moment kann man das Makro nur manuell bzw. auf "Knopfdruck" starten und es prüft den kompletten definierten Bereich.
Wenn DU noch mehr machen willst, z.B. den Wert aus C übertragen, dann statt
If Cells(iCnt, 3) - Cells(iCnt - 1, 3) = 24 Then Cells(iCnt, 1).Insert Shift:=xlDown
neu
If Cells(iCnt, 3) - Cells(iCnt - 1, 3) = 24 Then Cells(iCnt, 1).Insert Shift:=xlDown Cells(iCnt, 1).Value = Cells(iCnt, 3).Value End If
oder
If Cells(iCnt, 3) - Cells(iCnt - 1, 3) = 24 Then Cells(iCnt, 1).Insert Shift:=xlDown Cells(iCnt, 1).Value = Cells(iCnt, 3).Value + 1 End If
. \\\|/// 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:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• Marvin26
Registriert seit: 01.08.2019
Version(en): 2007
Danke für die Antwort, aber so richtig ist es noch nicht - jetzt überträgt er einfach die Werte (z.B. 141 in die 6.Reihe in Spalte A) und nicht eine Leerzelle in A142.
Ich muss mal selber etwas ausprobieren - vielleicht könnte ich es noch hinkriegen.
Vielen Dank für die Vorschläge
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
wenn in A in die eingefügte Zelle der Wert aus C oder der Wert aus C + 1 eingetragen werden soll, dann ist die Zelle in A nicht mehr leer ..
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
|