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

Zellen nach Vorgaben automatisch befüllen

Zellen nach Vorgaben automatisch befüllen
25.12.2017 23:14:09
Andreas
Hallo zusammen,
ich habe gerade begonnen meine fertige Access Spielkarten-DB mit Daten zu befüllen. Im speziellen befülle ich gerade die Einzelkartentabelle mit einer Exceltabelle via Import. Da ein Spiel im Schnitt 32 Karten mit je 6 Datenfelder (können aber auch 2 oder max. 16 Datenfelder sein) bin ich schnell zu der Einsicht gekommen, dass ich zumindest eine Spalte der Tabelle mit einer Art von Automatisierung erledigen muss. Automatisierung deswegen, da ich im Endausbau von rund 90000 Karten rede. Den Rest kann sich dann jeder mal selbst ausrechnen.
Das ganze sieht wie folgt aus. Die Tabelle hat eine Spalte QuKArtenID_F. Hat eine Karte z.B. 8 Werte, dann muss ich in der erwähnten Spalte die ID Einzelkarte setzen, in dem Fall 8x. Hat das Spiel 32 Karten, dann sind das 32 ID-Nummer je 8x und schon sind wir bei 256 Zellen, welche ich nur mit der möglichen Standardtätigkeit in Excel befüllen kann (8 Zellen markieren, Zahl eingeben, STRG+Return). Das muss ich dann 32x so machen.
Wären es nur 1000 Karten, dann wäre es nicht tragisch. Aber ich habe 90000 Karten so zu machen.
Hier ein Beispiel, wie das aussieht (ID-Nummern sind farblich hervorgehoben).
tblKartenMerkmale

 ABCD
1KartenMerkmaleIDQuKartenID_FMerkmalID_FEintrag
2 665264 
3 66546 
4 66535 
5 66530 
6 665385 
7 66543 
8 66541 
9 66548 
10 666  
11 666  
12 666  
13 666  
14 666  
15 666  
16 666  
17 666  
18 667  
19 667  
20 667  
21 667  
22 667  
23 667  
24 667  
25 667  


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Meine Frage ist, ob es möglich ist eine Prozedur zu erzeugen, die mir diesen Schritt zum Teil abnimmt. Aus meiner Sicht muss das ganze über ein VBA Skript als Abfrage zu Anfang geschehen.
  • Wie lautet die Anfangs- und die End-ID (z.B. 6665 bis 6696)
  • Wie viele Werte müssen hinterlegt werden, z.B. 8 (2-16 sind aber auch möglich)

  • Diese Werte müssen dann IMMER in Spalte B ab b2 eingetragen werden. Ist dies möglich mit einem VBA Skript oder ist dies eher nicht lösbar? Für Hilfe diesbezüglich wäre ich sehr dankbar, da es mir wirklich sehr viel "manuellen" Aufwand ersparen würde.
    mfG
    Andreas

    9
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Zellen nach Vorgaben automatisch befüllen
    27.12.2017 10:56:30
    ChrisL
    Hi Andreas
    Ohne speziell auf Performance zu achten:
    Sub t() Dim lngStart As Long, lngEnde As Long, lngAnzahl As Long, i As Long, j As Long lngStart = 6665 lngEnde = 6696 lngAnzahl = 5 Application.ScreenUpdating = False For i = lngStart To lngEnde For j = 1 To lngAnzahl Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) = i Next j Next i End Sub
    cu
    Chris
    AW: Zellen nach Vorgaben automatisch befüllen
    27.12.2017 11:53:19
    Andreas
    Hi Chris,
    danke erst mal, das funktioniert soweit.
    Ich habe jetzt den Code für das Arbeitsblatt integriert. Gibt es noch einen Möglichkeit, dass man den Code via Messagebox editieren kann, also dass man dann die Zahlen eingibt und die Anzahl pro ID?
    So muss ich ja immer den Code editieren, was natürlich auch geht. Oder gibt es da eine schnellere "smoothere" Möglichkeit statt ALT+F11.
    Gruß Andreas
    Anzeige
    AW: Zellen nach Vorgaben automatisch befüllen
    27.12.2017 13:01:18
    ChrisL
    Hi Andreas
    Sub t()
    Dim lngStart As Long, lngEnde As Long, lngAnzahl As Long, i As Long, j As Long
    lngStart = InputBox("Start")
    lngEnde = InputBox("Ende")
    lngAnzahl = InputBox("Anzahl")
    Application.ScreenUpdating = False
    For i = lngStart To lngEnde
    For j = 1 To lngAnzahl
    Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) = i
    Next j
    Next i
    End Sub
    

    Die Gültigkeitsprüfung der manuellen Eingabe (Prüfung ob Ganzzahl) überlasse ich dir als kleine Herausforderung ;)
    cu
    Chris
    AW: Zellen nach Vorgaben automatisch befüllen
    27.12.2017 16:03:45
    Andreas
    Hi,
    ist ja nett gemeint mit der Herausforderung, aber selbst wenn ich danach google und Beiträge lese die sich mit dem beschäftigen ist das ziemlicher Bahnhof für mich. Ich denke, dazu benötigt man dann schon etwas mehr als nur Basiswissen in VBA, wovon ich noch nicht mal Ansatzweise etwas habe, sorry.
    Ich sagte ja, das manuelle Ausführen geht ja, zum Glück. Vielen Dank dafür.
    Gruß Andreas
    Anzeige
    AW: Zellen nach Vorgaben automatisch befüllen
    27.12.2017 18:01:24
    ChrisL
    Hi Andreas
    Vielleicht hast du die Inputbox im Code übersehen.
    Für den Hobby-Gebrauch ist m.E. auch die allgemeine Error-Keule (Fehler überspringen) erlaubt:
    Sub t()
    Dim lngStart As Long, lngEnde As Long, lngAnzahl As Long, i As Long, j As Long
    On Error Resume Next
    lngStart = InputBox("Start")
    lngEnde = InputBox("Ende")
    lngAnzahl = InputBox("Anzahl")
    Application.ScreenUpdating = False
    For i = lngStart To lngEnde
    For j = 1 To lngAnzahl
    Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) = i
    Next j
    Next i
    End Sub
    
    (Nachteil eines pauschalen Fehlerhandlings: Es gibt keine Unterscheidung, warum ein Fehler eintritt. Es könnte z.B. auch der Blattschutz aktiviert sein oder ein anderer Fehlergrund.)
    cu
    Chris
    Anzeige
    AW: Zellen nach Vorgaben automatisch befüllen
    27.12.2017 20:16:06
    Andreas
    Hallo,
    nein, das habe ich nicht, hat auch funktioniert, konnte die also befüllen, aber ich habe es nicht zum ausführen gebracht, warum auch immer :-(. Ich habe die Arbeitsmappe jetzt angepasst und es geht.
    Danke für die Unterstützung.
    Gute Tage noch und guten Rutsch
    Andreas
    AW: Zellen nach Vorgaben automatisch befüllen
    28.12.2017 12:28:20
    Andreas
    Hallo Chris,
    kann man statt der Spalte
    
    Cells(Rows.Count, 2)
    
    auch noch die Startzelle definieren? Ich muss immer erst löschen, sonst hängt er das ja unten an. Dazu muss ja sicherlich Rows.Count abgeändert werden. Hab es nicht herausgefunden :-(. Ich dachte man kann

    Cells(2, 2)
    definieren, aber das geht nicht. Kannst du mir da vielleicht kurz unter die Arme greifen?
    Gruß Andreas
    Anzeige
    AW: Zellen nach Vorgaben automatisch befüllen
    28.12.2017 13:58:19
    ChrisL
    Hi Andreas
    Hier eine Variante:
    Sub t()
    Dim lngStart As Long, lngEnde As Long, lngAnzahl As Long, i As Long, j As Long
    Dim rngZelle As Range
    On Error Resume Next
    lngStart = InputBox("Start")
    lngEnde = InputBox("Ende")
    lngAnzahl = InputBox("Anzahl")
    Set rngZelle = Range("B2")
    Application.ScreenUpdating = False
    For i = lngStart To lngEnde
    For j = 1 To lngAnzahl
    rngZelle = i
    Set rngZelle = rngZelle.Offset(1, 0)
    Next j
    Next i
    End Sub
    
    cu
    Chris
    AW: Zellen nach Vorgaben automatisch befüllen
    28.12.2017 14:51:16
    Andreas
    Hallo Chris,
    funktioniert tadellos, vielen Dank.
    Gruß Andreas

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige