148 Aufrufe
Gefragt in Tabellenkalkulation von
Guten Tag,

ich benötige ihre Hilfe bei der Erstellung einer drei stelligen Abfolge aus Zahlen und Buchstaben (ohne Null)

AB3, 1UZ oder zum Beispiel G4E

Keine der Abfolgen soll doppelt vorkommen und die Abfolgen sollen sich nachträglich nicht verändern lassen.

Geplant ist damit ein Formular auszudrucken und deshalb muss ersichtlich sein welche Nummern im Umlauf sind. Es würde reichen wenn man ein Tabellenblatt mit zum Beispiel 100 dieser Abfolgen ausgibt und danach 100 weiter erstellt wenn man diese benötigt.

Alternativ könnte ich mir auch vorstellen das man zum Beispiel 20 Abfolgen erstellt diese dann selbstständig in das Formular (auch Excel) einträgt und jeder Ausdruck eine andere Abfolge bekommt. Ob das Oberhaupt möglich ist weiß ich nicht.

Ich habe bereits mit Index und Zufallszahl sowie Zeichen(Zufallsbereich) experimentiert jedoch werden die bereits erstellten Abfolgen permanent geändert was nicht sein darf.

Ich bedanke mich recht herzlich.
fat61

15 Antworten

0 Punkte
Beantwortet von
Hallo,

der erste Fehler lag an mir ich habe das falsche Tabellenblatt eingetragen.

Kann man die Druckeinstellungen auch mittels VBA kontrollieren so wie einseitg oder 2 seitig bzw das Papiermagazin?

Ebenfalls ist mir aufgefallen das wenn ich zuerst 3 Formulare ausdrucke und ich dann 10 weitere am gleichen Tag drucken möchte das er dann 7 ergänz also auf die Anzahl der ausdrucke aufrundet und nicht addiert.

Ich habe das Office 365 packet.
0 Punkte
Beantwortet von

Hallo fat61

Ja, du kannst den Printout-Befehl um zusätzliche Parameter ergänzen. Wie diese konkret aussehen hängt von deinem Drucker ab. Am besten du Druckst ein beliebiges Blatt mit deinen Wunscheinstellungen und nimmst das Ganze mit dem Makrorekorder auf. Dann kannst du die entstandenen Parameter hinter dem Printout-Befehl kopieren. Ein anderes Druckerfach zu wählen ist mit dem Standardbefehl aber nicht möglich. Schau dir dazu mal diesen Tipp an. Das wäre auch eine Möglichkeit.

Problem 2 kann ich leider nicht nachvollziehen. Bei mir werden erst 3, dann 10 Codes am gleichen Tag generiert. So wie gewünscht. Dafür sorgt die Schleife For z=1 to Anzahl. Wenn du also 10 eingibst werden auch 10 gedruckt. Es sei denn du hast bereits 40.000 Codes hinter dir. Dann kann es sein, dass der Timeout dich vorzeitig aus der Schleife schmeißt, weil in 30 sek. kein gültiger Code gefunden werden konnte. Diesen kannst du auch erhöhen. Aber ich vermute, so viele Formulare druckst du nicht, oder?

Gruß Mr. K.

0 Punkte
Beantwortet von
Hallo xlKing ich habe probiert die Druckereinstellungen mittels Makrorecorder aufzuzeichnen das hat leider nicht geklappt. Irgendwie kann der Rekorder nicht auf die Einstellungen vom Drucker zugreifen.
0 Punkte
Beantwortet von

Hallo fat61

das habe ich befürchtet. Da bleibt dir nur der Tipp aus meiner vorherigen Antwort. Sprich: Du generierst einen neuen Drucker und setzt darin die gewünschten Eigenschaften als Standard. Dann sprichst du diesen Drucker im Makroparameter an. Das geht! Was du genau machen musst um für denselben Drucker einen zweiten Druckerbutton für die gewünschten Einstellungen zu generieren, weiß ich auch nicht. Ich habe leider keinen Drucker, um das testen zu können. Am besten stellst du dazu hier im Forum eine neue Frage. Dann kann dir einer der Experten hier weiterhelfen.

Gruß Mr. K.

0 Punkte
Beantwortet von
Bearbeitet

Ebenfalls ist mir aufgefallen das wenn ich zuerst 3 Formulare ausdrucke und ich dann 10 weitere am gleichen Tag drucken möchte das er dann 7 ergänz also auf die Anzahl der ausdrucke aufrundet und nicht addiert.

So ich habe das heute nochmal geprüft und habe gesehen das er jetzt addiert also passt das.

Leider kann ich den Netzwerkdrucker kein zweites mal hinzufügen somit fällt leider die Idee mit den Druckern ins Wasser.  Aber das macht nichts.

Ich habe jetzt eine Msgbox eingefügt mit der Warunung "Sind die Druckereinstellungen geändert?" Ich werde jetzt probieren hier eine Box zu erstellen mit mehreren Buttons zum Auswählen wie Ja und Nein (bei nein soll Abgebrochen werden und bei Ja soll die Auswahl zwischen ForumlarDeu und ForumlarEng kommen)

Ich probiere das mal graphisch aufzuzeigen:

1. Druckereinstellunge geändert?

|

nein -> Abbruch

ja -> 2. ForumlarDeu oder FormularEng

|

Wieviele Formulare sollen erstellt werden?

[Feld für die Anzahl]

|

-> Anzahl an den ausgewählten Formularen wird automatisch gedruckt und die Datei gespeichert.

Ich würde mich freuen wenn einer von euch das auch umsetzten könnte da ich sehr viel hier mitnehme. Dank euch!

Sub Testfeld()

Dim Max As Long, Spalte As Long, z As Long, Start As Single, p As Byte
Dim code As String, zchn As String, anzahl As Long
Dim Codepos As Range, Codesheet As Worksheet, c As Range

Randomize Timer
Max = 42875

Eingabewert = MsgBox("Druckereinstellung geändert?", vbYesNo)

If Eingabewert = vbNo Then

End If

Exit Sub

ElseIf Eingabewert = vbYes Then

Sheets("FormularDeu").Select

Set Codepos = Sheets("FormularDeu").Range("B3") 'wo im Formular soll der Code stehen?
Set Codesheet = Sheets("Codes") 'wie heißt das Blatt, wo alle bereits
                                       'verwendeten Codes aufgelistet sind?
Do 'Abfrage nach Anzahl
anzahl = Val(InputBox("Wie viele Formulare wollen Sie heute drucken?"))
Loop Until CLng(anzahl) >= 0

'Spalte ermitteln
Set c = Codesheet.Cells.Find(Date)
If c Is Nothing Then
  Spalte = Codesheet.Cells(1, Columns.Count).End(xlToLeft).Offset(0, 1).Column
  Codesheet.Cells(1, Spalte) = Date
Else
  Spalte = c.Column

End If
End Sub

...