Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1884to1888
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 Makro Dummy Daten Erstellung

VBA Makro Dummy Daten Erstellung
18.05.2022 08:58:24
Stefanie
Hallo,
ich möchte gerne mit einem Makro Dummy Daten erstellen. Es geht darum, dass ich ca. 10,000 Datensätze erstellen will mit Informationen zu Trainings zu Compliance. Es soll eine Case-ID geben, die den Mitarbeiter darstellt und dann Informationen zum Trainingsstatus. z.B. Mitarbeiter mit Case-ID 01_9949, Training Compliance wurde zugeordnet am 01.01.21, Trainingsstatus "begonnen", "fertiggestellt", "digital signiert". Ich habe versucht mit Phyton ein Skript dafür zu schreiben, leider hat das nicht funktioniert. Da ich mich mit VBA leider nicht auskenne, wäre ich sehr dankbar, wenn mir jemand helfen könnte. Das hier ist der Phyton Code:
import pandas as pd
import os
import datetime
from random import randint
import random
#lets generate a random incident table
incident = pd.DataFrame(columns = [
'employee_number', #Id
'assigned_on', #datetime
'assigned_training', #options: Compliance, Health & Safety
'state', #options: Assigned, In Progress, Digitally signed
'duedate', #datetime
])
def rand_dt(year,from_month,to_month):
return datetime.datetime(year, randint(from_month,to_month),randint(1,28),randint(0,23),randint(1,59),randint(1,59))
cases = 10000 #choose the number of cases
for i in range(cases):
new_row = {
'employee_number' : "INC%d" %i,
'state' :random.choice(['Assigned', 'In Progress', 'Digitally signed', '', '']),
'assigned_on' :rand_dt(2021,1,2),
'duedate' :random.choice([rand_dt(2021,11,12)])
'assigned_training' :random.choice(['Compliance','Health & Safety'])
}
incident = incident.append(new_row, ignore_index=True)
incident = incident.reset_index(drop=True)
incident.to_xlsx(os.getcwd()+"/"+"incident.xlsx", index=False)
DANKE schonmal, ich wäre unendlich dankbar!

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Makro Dummy Daten Erstellung
18.05.2022 09:15:43
Fennek
Hallo,
meine Python-Kenntnisse sind ziemlich eingerostet. Hier ein Versuch mit VBA. Es werden n-Zeilen gefüllt:

Sub F_en()
Dim Datum1 As Date
Datum1 = CDate("1.1.2022")
For i = 2 To 99
Cells(i, 1) = "01_" & CStr(10000 + i)
Cells(i, 2) = Datum1 + Int(Rnd() * 365)
Cells(i, 3) = Choose(Int(Rnd() * 3) + 1, "begonnen", "fertiggestellt", "digital signiert")
Next i
End Sub
mfg
PS: Ein Versuch mit der neuen Schaltfläche für "Code einfügen", vor dem Abschicken sieht es nicht gut aus.
AW: VBA Makro Dummy Daten Erstellung
18.05.2022 09:46:37
Stefanie
Hallo,
ich danke vielmals, das hat mir schonmal sehr weitergeholfen und danke für den Hinweis mit der Schaltfläche. Noch eine Frage, kann man die zufällig erstellten Case-IDs in der ersten Spalte sich wiederholen lassen, also dass z.B. die Case-ID 01_10002 insgesamt dann 3 mal vorkommt, mit jeweils unterschiedlichen Ausprägungen (z.B. begonnen, fertiggestellt, digital signiert)? Und dass das Datum dann jeweils nach dem Datum des vorherigen Schritts liegt?
Danke schonmal und Viele liebe Grüße!
Anzeige
AW: VBA Makro Dummy Daten Erstellung
18.05.2022 10:12:20
UweD
Hallo
Habe das makro mal umgebaut

Sub F_en()
Dim Datum1 As Date, i As Integer
Datum1 = CDate("1.1.2022")
For i = 2 To 99 Step 3
Cells(i, 1).Resize(3, 1) = "01_" & CStr(10000 + i)
Cells(i, 2) = Datum1 + Int(Rnd() * 365)
Cells(i + 1, 2) = Cells(i, 2) + Int(Rnd() * 365)
Cells(i + 2, 2) = Cells(i + 1, 2) + Int(Rnd() * 365)
Cells(i, 3).Resize(3, 1).Value = WorksheetFunction.Transpose(Array("begonnen", "fertiggestellt", "digital signiert"))
'für Zufallssortierung
Cells(i, 4) = Rnd()
Cells(i + 1, 4) = Rnd()
Cells(i + 2, 4) = Rnd()
Next i
'sortieren nach Zufallszahl
With ActiveWorkbook.ActiveSheet
.Sort.SortFields.Clear
.Sort.SortFields.Add2 Key:=.Columns(4), SortOn:=xlSortOnValues, Order:=xlAscending
.Sort.SetRange .Range("A:D")
With .Sort
.Header = xlGuess
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
.Columns(4).ClearContents
End With
End Sub
LG UweD
Anzeige
AW: VBA Makro Dummy Daten Erstellung
18.05.2022 10:14:46
Fennek
Hallo,
versuche diesen Code

Sub F_en()
Dim Datum1 As Date
Range("A2:C1500").Clear
Datum1 = CDate("1.1.2022")
For i = 2 To 1000 Step 3
Cells(i, 1).Resize(3) = "01_" & CStr(10000 + Int(i / 3))
Cells(i, 2) = Datum1 + Int(Rnd() * 365)
Cells(i, 3) = "begonnen"
Cells(i + 1, 2) = Int(Cells(i, 2) + Rnd * 100) 'Dauer zwischen "begonnen" und "fertig"
Cells(i + 1, 3) = "fertiggestellt"
Cells(i + 2, 2) = Int(Cells(i + 1, 2) + Rnd * 45) 'Dauer zwischen "fertig" und "signiert"
Cells(i + 2, 3) = "digital signiert"
'Cells(i, 3) = Choose(Int(Rnd() * 3) + 1, "begonnen", "fertiggestellt", "digital signiert")
Next i
End Sub
mfg
Anzeige
AW: VBA Makro Dummy Daten Erstellung
20.05.2022 12:39:07
Stefanie
Ich bin euch unendlich dankbar, der letzte Code von Fennek hat super funktioniert! Tausend Dank, an euch beide für die schnellen und super Antworten!! :-)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige