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

ENTSCHULDIGUNG an 4 User

ENTSCHULDIGUNG an 4 User
18.09.2017 15:49:36
Christian
Hallo an alle,
Leider finde ich keinen anderen Weg, deswegen diesen.
Sorry für die Späte Rückmeldung zu meinem Beitrag:
"komplizierte Zeilendurchnummerierung - Dritteln"
Ich habe den Artikel am 8.8.17 eingestellt. War dann aber "überraschenderweise für 4 Wochen im Urlaub. Bin jetzt zurück, kann aber leider nicht mehr darauf antworten, weil der Artikel anscheinen schon zu alt ist. Alle Lösungen klappen soweit nicht. Trotzdem vielen Dank an: mmat, ede, Lupo1 und KlausF Vielen lieben Dank für euer Mühe, auch wnen ich jetzt erst schreibe.
Lösung gibt's da anscheinend keine. Ich müsste ja irgendwie erst alle Zeilen zählen, dann durch 3 teilen, der ersten Adresse die Nummer 1 geben, und der ersten Adresse vom "zweiten Teil" die 2, und der ersten Adresse vom dritten Teil die 3.....
DANKE Trotzdem, und noch mal Sorry!!!
Gruß
Christian

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ENTSCHULDIGUNG an 4 User
18.09.2017 16:05:07
mmat
Hi,
Entschuldigung akzeptiert :-)
AW: ENTSCHULDIGUNG an 4 User
19.09.2017 07:19:13
Christian
Danke!
AW: ENTSCHULDIGUNG an 4 User
18.09.2017 16:09:22
KlausF
Hallo Christian,
Lösung gibt's da anscheinend keine
Es gibt immer eine Lösung, aber ich vermute, dass keiner Dein Anliegen so richtig verstanden hat.
Denn interessant ist, wie es nach dem dritten Teil weiter geht: wieder mit der 1 ?
Kannst ja mal probieren:
Sub Nummerieren() '----------------------------------------------- anpassen Dim Block As Long, Schrittweite As Long Block = 3 Schrittweite = 3 Dim i As Long, a As Long, f As Long, n As Long Dim Zaehler As Long, Wechsel As Long, lastRow As Long lastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row Wechsel = (Block * Schrittweite) Zaehler = 0 n = 1 Application.ScreenUpdating = False For i = 1 To lastRow For a = 1 To Block Zaehler = Zaehler + 1 If a = 1 Then f = n Range("B" & i) = n n = n + Schrittweite i = i + 1 If i > lastRow Then Exit For Next a If Zaehler = Wechsel Then '----------------------------------------------- anpassen 'nächsthöhere Zahl: 'n = n + 1 - Schrittweite 'oder wieder mit 1 anfangen: n = 1 Zaehler = 0 Else n = f + 1 End If i = i - 1 Next i End Sub Gruß
Klaus
... und mach nie wieder Urlaub ,-)
Anzeige
AW: ENTSCHULDIGUNG an 4 User
19.09.2017 07:35:49
Christian
Hallo Klaus,
Na ja, Urlaub muss aber auch mal sein :-)
Ich vermute auch das mich keiner so genau versteht....aber ich kann es nur schwer besser erklären.
Rechnerisch müsste folgendes passieren.
Als erstes muss Excel die Summe der Zeileneinträge haben, die könnte ich auch mit einer Abfrage mitteilen (PopUp = SummeAbfrage))
Dann die Anzahl geteilt durch 3
nun müsste Excel die Zahl 1 dem ersten Eintrag vergeben,
die Zahl 2 dem Ergebnis (Summe Abfrage) / 3 +1
die Zahl 3 dem Ergebnis (Summe Abfrage) /3 x 2 + 1
die Zahl 4 dann direkt nach dem ersten Eintrag, also auf die 1 folgend
die Zahl 5 dann (Summe Abfrage)/ 3 + 2
Die Zahl 6 dann (Summe Abfrage) / 3 x 2 +2
usw....
es entsteht dann bei 12 Adressen folgendes Bild
Adresse / neue Zeilennummerierung
1 1
2 4
3 7
4 10
5 2
6 5
7 8
8 11
9 3
10 6
11 9
12 12

Sollte es keine Lösung geben, oder ich mich da einfach zu schlecht ausdrücken, dann werde ich es manuell sortieren.....is wie es is....
Danke trotzdem
Ich arbeite seit heute noch an einem zweiten Problem, ich hoffe das ist leichter zu lösen :-)
Danke an das Forum :-)
Gruß
Christian
Anzeige
Frage nicht beantwortet
19.09.2017 08:37:52
KlausF
Moin Christian,
Du hast meine Frage immer noch nicht korrekt beantwortet:
Die Frage war: was passiert nach dem dritten Teil (nach dem 3. Viererblock).
Konkret: welche Zeilennummerierungen bekommen Adresse 13 bis 16 ?
Wenn die Nummerierung 13 16 19 22 lautet dann
Sub Nummerieren()
'----------------------------------------------- anpassen
Dim Block As Long, Schrittweite As Long
Block = 4
Schrittweite = 3
Dim i As Long, a As Long, f As Long, n As Long
Dim Zaehler As Long, Wechsel As Long, lastRow As Long
lastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
Wechsel = (Block * Schrittweite)
Zaehler = 0
n = 1
Application.ScreenUpdating = False
For i = 1 To lastRow
For a = 1 To Block
Zaehler = Zaehler + 1
If a = 1 Then f = n
Range("B" & i) = n
n = n + Schrittweite
i = i + 1
If i > lastRow Then Exit For
Next a
If Zaehler = Wechsel Then
'----------------------------------------------- anpassen
'nächsthöhere Zahl:
n = n + 1 - Schrittweite
'oder wieder mit 1 anfangen:
'n = 1
Zaehler = 0
Else
n = f + 1
End If
i = i - 1
Next i
End Sub
Beachte, dass Du die Blockgröße und die Schrittweite im Makro anpassen kannst.
Blockgröße = Abstand von Zeilennummerierung 1 zu Zeilennummerierung 2 (hier: 4)
Schrittweite = Abstand 1. Ziffer Zeilennummerierung zu 2. Ziffer Zeilennummerierung (hier: von 1 zu 4 = 3)
Gruß
Klaus
Anzeige
noch etwas
19.09.2017 08:41:28
KlausF
Hallo Christian,
und wenn Du mit Zeilennummerierung eine Sortierung meinst,
dann müsste man anschließend noch die Adressen nach Spalte B sortieren lassen.
Gruß
Klaus
AW: noch etwas
19.09.2017 09:12:45
Christian
Hallo Klaus,
wenn es wie bei deinem Beispiel Adressen gibt 13 bis 16 läuft es wieder folgendermaßen.
Adressen / neue Nummerierung
1 = 1
2 = 4
3 = 7
4 = 10
5 = 13
6 = 16
7 = 2
8 = 5
9 = 8
10 = 11
11 = 14
12 = 3
13 = 6
14 = 9
15 = 12
16 = 15
du siehst, je nach Anzahl der Gesamtadressen, verändern sich die 3er Blöcke. Und somit auch die Nummerierung.
Ist es jetzt klarer?
Gruß
Christian
Anzeige
Kapiert
19.09.2017 10:23:25
KlausF
Hallo Christian,
probier mal:
Sub NummerierenNeu()
Dim i As Long, a As Long, lastRow As Long
Dim Schrittweite As Integer, Teilung As Integer
lastRow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row
Schrittweite = 3
Teilung = 1
a = 1
Application.ScreenUpdating = False
For i = 1 To lastRow
Range("B" & i) = a
a = a + Schrittweite
If a > lastRow Then
a = Teilung + 1
Teilung = Teilung + 1
End If
Next i
End Sub
Gruß
Klaus
AW: hab noch nicht verstanden ...
19.09.2017 10:32:12
...
Hallo Christian,
... warum sich nach Zeile 11 der Algorithmus bei Dir ändert?
Ansonsten hätte ich meine Formel wie folgt erweitert:
 HI
1Z11
2Z24
3Z37
4Z410
5Z513
6Z616
7Z72
8Z85
9Z98
10Z1011
11Z1114
12Z1217
13Z133
14Z146
15Z159
16Z1612

Formeln der Tabelle
ZelleFormel
I1=KÜRZEN((ZEILE()-1)/AUFRUNDEN(ANZAHL2(H:H)/3;0))+1+REST((ZEILE()-1); AUFRUNDEN(ANZAHL2(H:H)/3;0))*3


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...
Anzeige
noch nicht korrekt
19.09.2017 10:50:49
KlausF
Hallo Werner,
das funzt auch nicht.
Bei 565 Zeilen bekommst Du einmal den Wert 566, den es aber nicht geben darf.
Dafür fehlt der Wert 564.
Die Aufgabenstellung ist - anders ausgedrückt - folgende:
Angenommen die letzte belegte Zeile ist 565
Dann fange in Zeile 1 bei 1 an und addiere solange mit 3 bis maximal die Zahl 565 erreicht ist
Dann setze die 2 und addiere solange mit 3 bis maximal die Zahl 565 erreicht ist
Dann setze die 3 und addiere solange mit 3 bis maximal die Zahl 565 erreicht ist
Gruß
Klaus
AW: jetzt ist es nachvollziehbar ...
19.09.2017 11:05:24
...
Hallo Klaus,
... danke für Deine Info.
Ich gehe jetzt mal davon aus, dass Du das in Deiner VBA-Lösung schon integriert hast. Ich schau dann interessehalber heute Nachmittag noch mal, ob und wie man das vertretbar auch in eine Formellösung packen kann.
Gruß Werner
.. , - ...
Anzeige
AW: nachgefragt ...
19.09.2017 09:49:12
...
Hallo Christian,
... ich hab mir jetzt lediglich Deinen letzten Beitrag angesehen.
Diesen hätte ich momentan mit einer Formel wie folgt interpretiert.
Formel E1 nach unten kopieren. Das vorgegebene Ergebnis in Spalte B ergibt sich auch, wenn Du die Formeln von E1:E12 nach B1:B12 kopierst.
Meinst Du das so?
 ABCDE
1Z11 Z11
2Z24 Z24
3Z37 Z37
4Z410 Z410
5Z52 Z513
6Z65 Z616
7Z78 Z72
8Z811 Z85
9Z93 Z98
10Z106 Z1011
11Z119 Z1114
12Z1212 Z1217
13   Z133
14   Z146
15   Z159
16   Z1612
17   Z1715
18   Z1818
19     

Formeln der Tabelle
ZelleFormel
E1=KÜRZEN((ZEILE()-1)/ANZAHL2(D:D)*3;0)+1+REST((ZEILE()-1); ANZAHL2(D:D)/3)*3


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...
Anzeige
AW: nachgefragt ...
19.09.2017 10:29:39
Christian
Hallo Werner,
ich glaubs ja nicht!!!
Ich hab es jetzt mal probiert, und es tut bei Adressen die sich genau durch 3 teilen lassen genau den Dienst. Ist ja Klasse. Damit kann ich wunderbar arbeiten.....
Wie einfach das ganze aussieht, wenn man den Code sieht.
Unglaublich....
Vielen Dank!!!
Gruß
Christian
mit Deiner Datei allerdings nicht kompatibel
19.09.2017 11:29:40
KlausF
Hallo Christian,
Du hast aber schon den Dialog von Werner und mir verfolgt, oder?
Die (schöne) Lösung von Werner funktioniert nur mit einer Anzahl Adressen, die sich durch 3 teilen lassen.
In Deiner ursprünglichen Datei war das allerdings nicht der Fall.
Das neue Makro berücksichtigt jede beliebige Anzahl ...
Gruß
Klaus
Anzeige
AW: mit Deiner Datei allerdings nicht kompatibel
19.09.2017 12:23:56
Christian
Hallo Klaus,
...das neue Makro? Wenn es ein Lösung gibt, wo ich nicht vorher Dummys einfügen muss, dann ist das definitiv die optimalere Lösung...aber mir ist kein Makro bekannt, welches in den Posts war und funzte.....
Hab ich das überlesen?
Gruß
Christian
nicht ganz
19.09.2017 10:39:21
KlausF
Hallo Werner,
das ist es fast. Aber Dein zweiter großer Block beginnt mit Ziffer 4
und müsste mit Ziffer 2 beginnen. Jedenfalls in der ursprünglichen
Datei von Christian mit 565 Daten in Spalte A. Bis auf die 1 und die
letzte Ziffer sind bei Dir alle Zahlen drei mal vorhanden ...
Gruß
Klaus
AW: dazu siehe mein Beitrag von 10:32 owT
19.09.2017 10:46:15
10:32
Gruß Werner
.. , - ...
Anzeige
AW: dazu siehe mein Beitrag von 10:32 owT
19.09.2017 11:23:53
10:32
Hallo Klaus,
das ist mir auch aufgefallen, aber wenn ich die Adressen (notfalls mit Dummys) auf eine Zahl ergänze welche sich genau durch drei teilen lässt, klappt es. Das wäre für mich ein Workaround wo ich leben könnte.
Bisher musste ich alles mehrfach sortieren und neu nummerieren-....da ist diese Lösung schon wesentlich einfacher. Und mit den Dummys, werde ich das dann hinbekommen.
Vielen Dank an alle!!!
überschnitten
19.09.2017 11:35:57
KlausF
Hallo Christian,
diese Deine Antwort hat sich mit meiner Antwort von eben überschnitten
https://www.herber.de/forum/messages/1581285.html
:-)
Es erschließt sich mir zwar nicht, warum Du mit Dummys arbeiten willst,
wenn es eine VBA-Lösung gibt, aber wenn es Dir reicht, soll es mir auch recht sein.
Gruß
Klaus
AW: überschnitten
19.09.2017 12:30:08
Christian
Hallo Klaus...gefunden!!!
Das klappt ja auch mit beliebiger Anzahl von Adressen.
Auch wenn Sie nicht genau durch drei teilbar sind.
YES!!! So ist es perfekt!!!
Vielen, Vielen Dank!!!
....Ich mach ne Ausbildung bei dir :-)))))
Gruß
Christian
Danke für die Rückmeldung!
19.09.2017 18:08:00
KlausF
Hallo Christian,
danke für Dein Feedback.
Das Schwierigste daran war zu verstehen, was Du eigentlich willst :-)
Die VBA-Lösung ist nämlich alles andere als kompliziert ...
Gruß
Klaus
AW: eine alternative Formelösung ...
19.09.2017 15:56:36
...
Hallo Klaus, hallo Christian,
... hatte ja versprochen, nach einer Formellösung auch für eine Anzahl die nicht durch 3 teilbar ist zu suchen. Dies alles in eine Formel zu pressen, erschien mir zu aufwendig. Deshalb hab ich nun hierfür eine einfache eine Hilfsspaltenlösung aufgestellt. Diese kann für eine beliebige Anzahl genutzt werden.
Formeln eine Zeile weiter nach unten kopieren wie notwendig:
 HIJ
1Z111
2Z244
3Z377
4Z41010
5Z51313
6Z622
7Z755
8Z888
9Z91111
10Z101414
11Z1133
12Z1266
13Z1399
14Z141212
15Z151515
16 4 
17   

Formeln der Tabelle
ZelleFormel
I1=WENN(ZEILE()>ANZAHL2(H:H)+1;"";KÜRZEN((ZEILE()-1)/AUFRUNDEN(ANZAHL2(H:H)/3;0))+1+REST((ZEILE()-1); AUFRUNDEN(ANZAHL2(H:H)/3;0))*3)
J1=WENN(H1="";"";INDEX(I:I;ZEILE()+ZÄHLENWENN(I$1:I1;">"&ANZAHL2(H:H))))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...
Etwas tricky, aber funktioniert! o.w.T.
19.09.2017 23:06:12
KlausF
AW: Etwas tricky, aber funktioniert! o.w.T.
21.09.2017 13:50:23
Christian
Danke....:-)
Ich habe jetzt das VBA von Klaus im Einsatz, funzt super...
Gruß
Christian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige