Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Zellen automatisch mit Zalen ausfüllen lassen | Herbers Excel-Forum


Betrifft: Zellen automatisch mit Zalen ausfüllen lassen von: Rüdiger
Geschrieben am: 12.11.2009 17:18:05

Hallo,
ich möchte bei einer Arbeitsmappe, in der ich ein Häkelmuster eingesetzt habe die leeren Kästchen mit fortlaufenden Zahlen füllen lassen. Im Moment mache ich das per Hand!
In der untersten Zeile fängt die Zahl 1 an der rechten Seite anfangen und fortlaufend bis zum nächsten "X" in die Zelle geschrieben werden. Nach dem "X" sollte es wieder mit der Zahl 1 beginnen, bis die Zeile zu ende ist.
In der nächst höheren Zeile das gleiche nur dort soll die Zahl 1 links beginnen.
Das Arbeitsblatt ist mit der Schriftengröße 16 Pkt und fett.
Die Zahlen sollten aber in der größe 9 Pkt und nicht fett sein.
Wer kann mir da helfen.
PS.
Ich habe ein Muster gemacht, wie es aussehen soll.
Nur weiß ich nicht wie ich diese Datei mit einbinden kann!

Vielen Dank schonmal von Rüdiger

  

Betrifft: AW: Zellen automatisch mit Zalen ausfüllen lassen von: Erich G.
Geschrieben am: 12.11.2009 17:42:37

Hi Rüdiger,
wenn du auf diesen Beitragt antwortest, findest du rechts über dem großen weißen Feld, in das du schreibst,
und über deiner Mail-Adresse in blauer Schrift Hier gehts zum File-Upload.

Wenn du darauf klickst, die kurze und einfache Anleitung liest und befolgst,
kannst du deine Beispielmappe hochladen.

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Zellen automatisch mit Zalen ausfüllen lassen von: Rüdiger
Geschrieben am: 12.11.2009 18:33:22

Hallo,
ich habe es versucht und es stand nachher"https://www.herber.de/bbs/user/65831.zip" da, was nun?
Gruß Rüdiger


  

Betrifft: Dateien im Forum hochladen von: Erich G.
Geschrieben am: 12.11.2009 18:48:12

Hi Rüdiger,
das war jetzt fast perfekt - die Mappe hast du hochgeladen!

Noch ein Tipp: Wenn du vor und hinter dem Text "https://www.herber.de/bbs/user/65831.zip"
die Gänsefüße weglässt, wird die Forums-Software den Text als Link erkennen und anzeigen lassen:

Wichtig also: Vor und hinter dem Link keine Zeichen! (Leerzeichen sind erlaubt)
Das funzt:
https://www.herber.de/bbs/user/65831.zip

Das funzt auch - wegen der Leerzeichen: https://www.herber.de/bbs/user/65831.zip obwohl drumherum etwas steht.

Hab jetzt leider keine Zeit, sehe mir die Mappe später an, lasse aber offen, für alle anderen Antworter.

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Dateien im Forum hochladen von: Rüdiger
Geschrieben am: 12.11.2009 20:51:28

Vielen Dank für den Tip Erich.
Habe das erste mal so etwas gemacht!
Danke nochmals von Rüdiger


  

Betrifft: Anderenfalls musst du ein vollständiges... von: Luc:-?
Geschrieben am: 12.11.2009 21:34:37

...HTML-Tag setzen, Rüdiger,
also z.B. <a href="https://www.herber.de/bbs/user/65831.zip ">hier meine Datei</a>
Nichts für ungut, Erich, nur 'ne kleine Retourkutsche... ;-)
Gruß Luc :-?


  

Betrifft: leere Zellen mit Zahlen füllen von: Erich G.
Geschrieben am: 12.11.2009 19:37:07

Hi Rüdiger,
jetzt hab ich das mal programmiert:

Option Explicit

Sub Strickzahlen()
   Dim zz As Long, ss As Long, nn As Long, rngF As Range
   Dim intVR As Integer, intBg As Integer

   Const lngZ As Long = 64, lngS As Long = 42

   With Application
      .EnableEvents = False
      .Calculation = xlCalculationManual
'      .ScreenUpdating = False     ' nach den Test aktivieren
   End With
   For zz = 1 To lngZ
      nn = 0
      intVR = IIf(lngZ Mod 2 = zz Mod 2, -1, 1)
      intBg = IIf(intVR = 1, 1, 0)
      For ss = intBg + (1 - intBg) * lngS To intBg * lngS + (1 - intBg) Step intVR
         If Cells(zz, ss) = "X" Then
            nn = 0
         Else
            nn = nn + 1
            Cells(zz, ss) = nn
            If rngF Is Nothing Then
               Set rngF = Cells(zz, ss)
            Else
               Set rngF = Union(rngF, Cells(zz, ss))
            End If
         End If
      Next ss
   Next zz
   With rngF.Font
      .Size = 9
      .Bold = False
   End With
   With Application
      .ScreenUpdating = True
      .Calculation = xlCalculationAutomatic
      .EnableEvents = True
   End With
End Sub
Das Makro sollte in ein normales Modul. Dann kannst du es mit Extras - Makro - ... starten.

Wenn du so nicht klar kommst, lade ich die Mappe noch mal hoch.

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: leere Zellen mit Zahlen füllen von: Rüdiger
Geschrieben am: 12.11.2009 21:01:48

Hallo Erich,
das klappt wunderbar, nur ein Problem ist noch, das Muster geht oben zusammen (dicke Linien) und die Zahlen werden im Quadrat weiter gerade aus hoch geschrieben.
Das Muster ist von der dicken Linie begrenzt. Das heißt, dass das Ergebnis des Häkelns genau so aussieht, wie das Bild im Arbeitsbatt.
Ich hoffe, dass Du es verstanden hast, ich schreibe manchmal etwas überzwerg!
Trotzdem Vielen Dank von Rüdiger


  

Betrifft: Rückfragen von: Erich G.
Geschrieben am: 12.11.2009 21:28:31

Hi Rüdiger,
das verstehe ich jetzt noch nicht. Was meinst du mit den "dicken Linien"? Das Muster - oben das /\-förmige Dach?
Unten ist das etwas umrankt - Was wäre dann da maßgebend?

Oder meinst du den dicken Rahmen? Der ist aber im Beispiel rechteckig,
auf der rechten Seite ist er eine Gerade von AP1 bis AP64.

Schreib mal bitte, wo die Zahlen in den Zeilen 23, 24 und 25 eingetragen werden sollen und wo nicht,
und woraus sich das dann für die übrigen Zahlen ableiten lässt.

Sollen z. B. in Zeile 1 gar keine Zahlen mehr stehen? In Zeile 63 hattest du sie aber eingetragen.

Das "Bild im Arbeitsblatt" habe ich nicht gefunden - ist da irgendwo eine Grafik o. ä.?

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Rückfragen von: Rüdiger
Geschrieben am: 13.11.2009 09:00:50

Hallo Erich,
warum in der älteren Version keine Abtrennung war verstehe ich nicht, ich schicke nochmals eine Zip Datei mit der Eingränzung des Häkelmusters. In der Eingränzung sollten die Zahlen wie beschrieben stehen. Ich habe die Zahlen in dem oberen konischen Teil zum Besseren sehen rot gemacht.
Oder sollte ich als Abschluß des Häkelmusters keine Einschränkung mit einem dicken Strich sein sondern ein Buchstaben, damit das VBA Programm weiß, wo es anfangen und enden soll?
Der Dateinamen ist: https://www.herber.de/bbs/user/65852.zip

GrußRüdiger


  

Betrifft: Version mit A(nfang) und E(nde) von: Erich G.
Geschrieben am: 13.11.2009 14:17:19

Hi Rüdiger,
so wie hier könnte ich mir das vorstellen: https://www.herber.de/bbs/user/65869.zip

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Version mit A(nfang) und E(nde) von: Rüdiger
Geschrieben am: 13.11.2009 16:52:36

Hallo Erich, das ist OK. Ich kann ja im Nachhinein das "A und E" wieder rauslöschen oder kann das Programm das auch, nachdem es die Zahlen reingesetzt, auch löschen?
Ich habe noch mal ein Häkelmuster mitgeschickt. es ist etwas schwieriger. Geht das auch. Muß nicht aber gut wäre es.

A = Anfang
E = Ende
EA = Ende und Anfang zugleich, da es genau in der Spitze steht.

Datei: https://www.herber.de/bbs/user/65876.zip
Vielen Dank von Rüdiger


  

Betrifft: AW: Version mit A(nfang) und E(nde) von: Rüdiger
Geschrieben am: 13.11.2009 17:27:25

Hallo Erich,
nochmal eine Andere aber dazugehörende Frage.
Ich kann nach dem das VBA Programm die Zahlen reingesetzt hat nichts mehr darin verändern, da dann die Zahlen nicht mehr stimmen.
Du weißt ja wie das mit den Frauen ist, was denen im Moment gefällt kann Morgen ganz anders sein, das heißt, z. B. das Bild nicht mehr links sondern jetzt rechts sein soll. Dann stimmen natürlich die Zahlen nicht mehr.
Kannst Du mir dahingehend ein kleines PRG schreiben, das die Zahlen wieder löscht?
Wäre sehr nett von Dir.
Siehe: https://www.herber.de/bbs/user/65877.zip
Das ist als Beispiel die gemeinet Datei!
Dein erstes Programm funktioniert bei rechteckigen Häkelmustern sehr, sehr gut. Ich ändere nur die beiden Einträge wo es um Spalten und Zeilen geht und es klappt prima. Dieses Programm halte ich in Ehren!


  

Betrifft: Version mit A's, E's und EA's und Löschen von: Erich G.
Geschrieben am: 13.11.2009 21:58:26

Hi Bernie aus Ffm vom RSC, (habe ich aus den Dateieigenschaften...)

hier eine erweiterte Fassung des Programms, das jetzt auch mit mehreren As und Es und EAs zurechtkommt,
und dazu auch eine Routine zum Löschen aller Zahlen auf einem Tabellenblatt.

Option Explicit

Sub StrickzahlenAE2()
   Dim zz As Long, ss As Long, nn As Long, rngF As Range
   Dim intVR As Integer, lngA As Long, lngE As Long, varB, lngB As Long
   Dim lngS As Long, arrT, blnZahl As Boolean

   Const lng1 As Long = 5
   Const lngZ As Long = 29

   With Application
      .EnableEvents = False
      .Calculation = xlCalculationManual
      .ScreenUpdating = False
      For zz = lng1 To lngZ
         nn = 0
         arrT = .Transpose(.Transpose( _
            Range(Cells(zz, 1), Cells(zz, LetzteSpalteInBereich(Rows(zz))))))
         If (lngZ - zz) Mod 2 = 1 Then
            intVR = 1:     lngA = 1:               lngE = UBound(arrT)
         Else
            intVR = -1:    lngA = UBound(arrT):    lngE = 1
         End If
         For ss = lngA To lngE Step intVR
            Select Case arrT(ss)
               Case "X", "EA"
                  nn = 0
               Case "A"
                  nn = 0:   blnZahl = intVR = 1
               Case "E"
                  nn = 0:   blnZahl = intVR = -1
               Case Else
                  If blnZahl Then
                     nn = nn + 1:   Cells(zz, ss) = nn
                     If rngF Is Nothing Then
                        Set rngF = Cells(zz, ss)
                     Else
                        Set rngF = Union(rngF, Cells(zz, ss))
                     End If
                  End If
            End Select
         Next ss
      Next zz
      rngF.Font.Size = 9
      rngF.Font.Bold = False
      .ScreenUpdating = True
      .Calculation = xlCalculationAutomatic
      .EnableEvents = True
   End With
End Sub

Sub LoescheZahlen()
   Dim arrB, zz As Long, ss As Long

   With Application
      .EnableEvents = False
      .Calculation = xlCalculationManual
      .ScreenUpdating = False
   End With
   With ActiveSheet.UsedRange
      arrB = .Value
      For zz = 1 To UBound(arrB)
         For ss = 1 To UBound(arrB, 2)
            If Not IsEmpty(arrB(zz, ss)) And IsNumeric(arrB(zz, ss)) Then _
               .Cells(zz, ss).ClearContents  ' oder: Clear
         Next ss
      Next zz
   End With
   With Application
      .ScreenUpdating = True
      .Calculation = xlCalculationAutomatic
      .EnableEvents = True
   End With
End Sub

Function LetzteSpalteInBereich(rngB As Range) As Long
    Dim rng As Range
 
    Set rng = rngB.Find("*", rngB.Cells(1, 1), xlValues, , xlByColumns, xlPrevious)
    If rng Is Nothing Then
       LetzteSpalteInBereich = rngB.Cells(1, 1).Column
    Else
       LetzteSpalteInBereich = rng.Column
    End If
End Function
Und hier die Mappe zum Spielen: https://www.herber.de/bbs/user/65886.xls

Die As und Es und EAs ibei den Tauben sollte ich nicht eintragen, oder?
Das Löschen der Zahlen funzt auch da.

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: Version mit A's, E's und EA's und Löschen von: Rüdiger
Geschrieben am: 14.11.2009 15:47:44

Hallo Erich,
übrigens RSC ist der Rollstuhl-Sport-Club Frankfurt e.V., bei dem ich Mitglied bin und mit die Vereinszeitung, Flyer und sonstige Druckvorstufen mit entwerfe!
Jetzt zum PRG, habe das PRG in Modul 1 kopiert und wenn ich bei "Sub StrickzahlenAE2()" auf den Pfeil Sub Ausführen klicke, kommt die Fehlermeldung:

"Laufzeitfehler '91':
Objektvariable oder With-Blockvariable nicht festgelegt."

Wenn ich auf Debuggen klicke, wird die Zeile "rngF.Font.Size = 9" gelb hinterlegt, davor ist auch noch ein gelber Pfeil.
In Deinem Musterprogramm hast Du das so schön im Mako angezeigt, dass immer verschiedene Sub's angesprungen werden. Bei mir nicht!
Gruß Rüdiger


  

Betrifft: mit Fehlerabfänger von: Erich G.
Geschrieben am: 14.11.2009 18:09:26

Hi Rüdiger,
diese Fehlermeldung erscheint, wenn rngF kein Bereich ist, sondern nichts.
Und nichts ist rngF, wenn die Prozedur gar keine Zahl in die Tabelle geschrieben hat.
Dann ist ja auch keine Schriftgröße zu ändern.
Das kann zum Beispiel vorkommen, wenn da keine A's oder E's vorkommen
oder die Zeilen von-bis nicht richtig angegeben sind.

In dieser Routine wird dann kein Fehler, sondern eine ordentliche Meldung ausgegeben:

Sub StrickzahlenAE2()
   Dim zz As Long, ss As Long, nn As Long, rngF As Range
   Dim intVR As Integer, lngA As Long, lngE As Long, varB, lngB As Long
   Dim lngS As Long, arrT, blnZahl As Boolean

   Const lng1 As Long = 5
   Const lngZ As Long = 29

   With Application
      .EnableEvents = False
      .Calculation = xlCalculationManual
      .ScreenUpdating = False
      For zz = lng1 To lngZ
         nn = 0
         arrT = .Transpose(.Transpose( _
            Range(Cells(zz, 1), Cells(zz, LetzteSpalteInBereich(Rows(zz))))))
         If (lngZ - zz) Mod 2 = 1 Then
            intVR = 1:     lngA = 1:               lngE = UBound(arrT)
         Else
            intVR = -1:    lngA = UBound(arrT):    lngE = 1
         End If
         For ss = lngA To lngE Step intVR
            Select Case arrT(ss)
               Case "X", "EA"
                  nn = 0
               Case "A"
                  nn = 0:   blnZahl = intVR = 1
               Case "E"
                  nn = 0:   blnZahl = intVR = -1
               Case Else
                  If blnZahl Then
                     nn = nn + 1:   Cells(zz, ss) = nn
                     If rngF Is Nothing Then
                        Set rngF = Cells(zz, ss)
                     Else
                        Set rngF = Union(rngF, Cells(zz, ss))
                     End If
                  End If
            End Select
         Next ss
      Next zz
      If rngF Is Nothing Then
         MsgBox "Es wurden keine Zahlen eingetragen.", vbInformation
      Else
         rngF.Font.Size = 9
         rngF.Font.Bold = False
      End If
      .ScreenUpdating = True
      .Calculation = xlCalculationAutomatic
      .EnableEvents = True
   End With
End Sub
Die beiden anderen Codes im Modul - LoescheZahlen() und LetzteSpalteInBereich(...) -
bleiben unverändert.

Den Satz
"In Deinem Musterprogramm hast Du das so schön im Mako angezeigt,
dass immer verschiedene Sub's angesprungen werden. Bei mir nicht!"
habe ich überhaupt nicht verstanden. Da müsstest du noch mal anders fragen.

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: mit Fehlerabfänger von: Rüdiger
Geschrieben am: 15.11.2009 09:25:09

Hallo Erich,
hier das in Schritten, was ich meinte.

1. Mache deine Versuchsdatei auf
2. klicke auf Extras
3. klicke auf Makro
4. dann kommt das Fenster: Makros.

Dann steht in dem Makro Fenster:
LoescheZahlen
Makro1
Spaltenbreite_in_cm
StrickzahlenAE2
ZeilenhoeheInCM
.
Wie kann ich das bei mir auch so machen, das was Du hast ist nämlich klasse.
Ich schreibe in das Mako Fenster oben Strickzahlen rein, wenn das Makro aufgeht, lösche ich die beiden Zeilen und kopiere dann das VBA PRG einfach rein. Wenn ich ein Makro haben will, gehe in dem Makro Fenster in Bearbeiten und dann in die SUB Routine mit der ich arbeiten will und drücke dann den Pfeil rechts zum Start.
Bei Deiner Version, muß ich nicht diesen Umweg machen.
Wie geht das, bitte erklähre mir das ganz einfach! Für Anfänger.
Bei der Routine bei Spalten und Zeilen in cm, sind das dann beim Ausdruck wirklich die cm (mm)?
Das wäre klasse, dann kann ich nämlich die genaue Breite des Forhanges oder der Decke bestimmen.
Ich habe das letzte Häkelmuster mit Zahlen ausfüllen lass, das dauerte und dauerte, ca 30 Minuten, aber es ging.
Noch einen schönen Sonntag wünscht Dir und Deiner Familie Rüdiger


  

Betrifft: AW: mit Fehlerabfänger von: Rüdiger
Geschrieben am: 15.11.2009 11:09:43

Hallo Erich, nochmal eine Bitte,
könntest Du mir ein VBA PRG schreiben, das nur die "A und E und AE" löscht, Ist sehr nett.
Es ist natürlich arbeitsintensiv, wenn ich die wieder per Hand löschen muß, es ist schon arbeitsintensiv, wenn ich die reinsetzen muß was ich ntürlich gerne mache, da Dein neues PRG wunderbar funkioniert!
Im übrigen habe ich das einsetzten der Zahlen in dem großen Häkelmuster in 50ger Schritten gemacht, geht natürlich viel schneller, pro Schritt ca 20 Sekunden!
Gruß Rüdiger


Beiträge aus den Excel-Beispielen zum Thema "Zellen automatisch mit Zalen ausfüllen lassen"