Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.04.2024 20:05:21
28.04.2024 18:33:31
28.04.2024 18:25:12
28.04.2024 14:18:05
Anzeige
Archiv - Navigation
1932to1936
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

vba, ID generieren (Datum & Textinhalt)

vba, ID generieren (Datum & Textinhalt)
31.05.2023 09:38:00
Fred


Hallo Excel-Profis,
ich möchte jeden meiner Fußballspiele eine ID zuordnen.
Mein erster Gedanke; Jedes Team hat nicht mehr als 1 Spiel an einem Tag. Daher liegt es auf der Hand, eine ID aus Datum & Clubname.
In meiner formatierten Tabelle beginnen die Datumswerte und Vereinsnamen in der 11. Zeile.
Datumswert: Spalte 10
Clubname: Spalte 12
Ist es möglich, eine ID aus beiden Werten zu generieren?

Gruss
Fred

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: vba, ID generieren (Datum & Textinhalt)
31.05.2023 09:51:25
Fred
.. mit einer Formel wäre dies eventuell so umzusetzen:
TEXT([@DATE];"TTMMJJJJ")&"-"&C11
Frage; Kann der Clubname eventuell in eine Zahl umgewandelt werden?
Gruss
Fred


AW: vba, ID generieren (Datum & Textinhalt)
31.05.2023 09:55:10
Oberschlumpf
Hi Fred,

in Zelle A11 diese Formel...

=J11 & "_" & L11
...und Formel in Spalte A runterziehen

Ach so, ist vllt Spalte A die falsche? Dann musst du A gegen den Spaltenbuchstaben austauschen, wo es für dich besser passt.

Hilfts?
Nein? Dann bitte per Upload eine hilfreiche Bsp-Datei.

Ciao
Thorsten


Anzeige
AW: vba, ID generieren (Datum & Textinhalt)
31.05.2023 10:04:26
Fred
Hallo Thorsten,
ich habe das nun mal als makro umgesetzt:
Sub GeneriereID()
    Dim letzteZeile As Long
    Dim i As Long
    
    letzteZeile = Cells(Rows.Count, 12).End(xlUp).Row
    
    For i = 11 To letzteZeile
        Cells(i, 9).Value = Format(Cells(i, 10).Value, "ddmmyyyy") & "_" & Cells(i, 12).Value
    Next i
End Sub
Besteht die Möglichkeit, den Vereinsnamen (Spalte 12) als Zahl zu generieren?

Gruss
Fred


AW: vba, ID generieren (Datum & Textinhalt)
31.05.2023 10:12:33
Fred
Hallo Thorsten,
.. im Web habe ich folgendes Makro entdeckt und auf meine Tabelle geändert:
Sub GeneriereIDs2()
    Dim letzteZeile As Long
    Dim i As Long
    
    letzteZeile = Cells(Rows.Count, 9).End(xlUp).Row
    
    For i = 11 To letzteZeile
        Dim clubName As String
        Dim clubNameNum As Double
        
        clubName = Cells(i, 12).Value
        
        ' Umwandlung des Clubnamens in eine Zahl
        For j = 1 To Len(clubName)
            clubNameNum = clubNameNum + Asc(Mid(clubName, j, 1))
        Next j
        
        ' Generierung der ID ohne den Clubnamen
        Cells(i, 9).Value = Format(Cells(i, 10).Value, "ddmmyyyy") & "-" & clubNameNum
        Cells(i, 9).NumberFormat = "0" ' Ändert das Format der ID-Zelle auf Zahl
    Next i
End Sub

Die generierte ID enthält nur eine Zahl, nicht den ursprünglichen Clubnamen,- indem die ASCII-Werte der einzelnen Zeichen des Namens zusammengezählt werden.
Gibt es da etwas einzuwenden?

Gruss
Fred


Anzeige
AW: vba, ID generieren (Datum & Textinhalt)
31.05.2023 10:29:34
Fred
Thorsten,
der Hintergrund; Es wirrd die Tabelle immer wieder ergänzt und mit anderen Tabellen u.U. gemixt (aus anderen Ligen usw.)
Um zB den gemixten Tabellen ursprüngliche Daten hinzuzufügen, sollte die ID tatsächlich einmalig sei,n- auf keinen Fall unterschiedlichen Clubspielen zugeordnet werden.


AW: vba, ID generieren (Datum & Textinhalt)
31.05.2023 10:47:33
Oberschlumpf
Fred,

zumindest ich mag deine datei nicht nachbauen - zeig doch bitte eine Bsp-Datei per Upload...mit Bsp-Daten in den richtigen Zellen

Ciao


AW: vba, ID generieren (Datum & Textinhalt)
31.05.2023 11:12:14
Fred
Hallo Thorsten,
hier ein Auszug einer meiner relevanten Dateien;
https://www.herber.de/bbs/user/159392.xlsb
Die Tabelle beinhaltet zB Daten aus 1 & 2. Bundesliga
Meine "Unsicherheit" in Hinsicht auf eine eindeutige Kennung der einzelnen Spiele kommt daher, das ja im Makro die ASCII-Werte der einzelnen Zeichen verwendet werden.
Beispiel 832
Kann gelesen (interpretiert) werden als
832, oder 8 und 32 oder 83 und 2 undundund
Verstehst du?
Ich will mir nur in Zukunft sicher sein, das jedes einzelne Spiel tatsächlich eine eindeutige Kennung hat.

Gruss
Fred


Anzeige
AW: vba, ID generieren (Datum & Textinhalt)
31.05.2023 12:31:57
Oberschlumpf
Hi Fred

1. du verwendest diesen Befehl

Cells(i, 9).NumberFormat = "0" ' Ändert das Format der ID-Zelle auf Zahl
Wieso? Versuch mal in irgdeiner Zelle diese Formel: =I11+1 (als Werte wäre das =21052023-832 + 1

Was denkst du, kommt da als Ergebnis raus? Etwa 21052023-833???
FALSCH! Das Ergebnis ist #WERT!....weil die ID ein - enthält! Somit bleibt die ID ein Text, egal, wie oft du diese Zellen als Zahl formatierst.
Den oben zitierten Befehl kannst du also löschen.

2. Du schreibst "...Kann gelesen (interpretiert) werden als 832, oder 8 und 32 oder 83 und 2 undundund..."

Ja, stimmt, ID kann so oder so gelesen/interpretiert werden....aber!!!!....DU allein entscheidest in deinem Code und in den Formeln, WIE etwas gelesen/interpretiert wird!
Und der Inhalt aus Spalte ID MUSS natürlich IMMER als gesamter Inhalt verwendet/gelesen/interpretiert werden - und nich nur ein Teil davon.

3. Die Warnung von Steuerfuzzi wegen vielleicht möglicher doppelter Werte halte ich für unbegründet, weil ja die "Summe" für ID immer aufsummiert wird - so ist es eigtl unmöglich, dass irgdwann mal z Bsp der Wert 832 (oder jeder andere schon geschriebene Wert) erneut vorkommt, weil ja - immer - jede folgende ID hinter dem -Zeichen größer ist als die vorhergehende ID.
Aber natürlich kann ich mich auch irren - und Steuerfuzzi hat vllt doch recht....aber das musst halt du ausprobieren

4. Die Warnung von Steuerfuzzi wegen zu großer Zahlen halte ich auch für unbegründet, weil ja die ID ein TEXTeintrag ist und keine echte Zahl. Somit kann es nur passieren, dass die aktuelle Spaltenbreite für ID zu klein wird, um die gesamte ID anzuzeigen.

Sooo..."unterm Strich" würd ich sagen:
Deine Datei - so, wie wir sie jetzt kennen! - kann so bleiben (mit Löschen des obigen Codes).
Und, wie gesagt, wenn du mein 2. beachtest, wieso sollte die ID dann anders interpretiert werden?

Ciao
Thorsten


Anzeige
AW: vba, ID generieren (Datum & Textinhalt)
31.05.2023 13:35:01
Fred
Thorsten,
vielen Dank für deine ausführliche Beschreibung!
Nach deinen Ausführungen ist mir der Code eigentlich so richt bewußt und paßt nicht mehr ins gewünschte :-(
weil "... weil ja die "Summe" für ID immer aufsummiert wird"
Es ist halt so, das wenn die Tabelle immer wieder ergänzt wird und auch anders sortiert wird, auch die ID vergeben werden soll.
Nutze ich nun das letzte Makro, wird folglich (zumindest wenn anders sortiert) eine andere ID dem Spiel zugefügt :-(
Ich denke mal, das es doch wohl in diesen Fall sinnvoller ist, wenn ich die ID so wie in meinem ersten Makro bestimme:
Sub GeneriereID()
    Dim letzteZeile As Long
    Dim i As Long
    
    letzteZeile = Cells(Rows.Count, 12).End(xlUp).Row
    
    For i = 11 To letzteZeile
        Cells(i, 9).Value = Format(Cells(i, 10).Value, "ddmmyyyy") & "_" & Cells(i, 12).Value
    Next i
End Sub
so bin ich mir 100% sicher, dass immer die gleiche ID für ein Spiel generiert wird,- egal wie sortiert ist.

Gruss
Fred


Anzeige
AW: vba, ID generieren (Datum & Textinhalt)
31.05.2023 11:44:50
Der Steuerfuzzi
Hallo,

grundsätzlich ist nichts gegen die Summe einzuwenden. Man muss nur aufpassen, dass die Werte nicht zu groß werden (z. B. bei recht langen Namen) und dass es nicht zu doppelten Werten kommt.

Gruß
Michael

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige