Multiplayer-Excel
09.04.2019 10:57:18
Jacob
ich bin dabei, ein Tool zu bauen, mit dem das Schreiben von Artikeletiketten schneller von statten gehen soll.
Zu diesem Zweck habe ich eine doppelte Referenzdatenbank erstellt, in der alle Informationen betreffs des jeweiligen Artikels hinterlegt sind. Doppelt deshalb, weil sehr großer Wert darauf gelegt wird, ob die Artikelbezeichnung in Singular oder im Plural auf dem Etikett stehen soll.
Bisher habe ich es, auch mit Hilfe des Forums hier, geschafft, dass man die Etiketten drucken kann (über eine kleine Hilfstabelle, die nur kurz aufploppt und wieder zugeht, um die Daten dem Etikettenprogramm zur Verfügung zu stellen) und auch das Hinzufügen neuer Artikel in die Referenzdatenbanken klappt einwandfrei.
Mein Problem an der ganzen Geschichte ist, dass mein Chef begeistert von dem Tool ist (das ist nicht das Problem) und meine Kollegin ebenfalls damit arbeiten soll.
Bisher habe ich es so gelöst, dass ich das ganze Projekt komplett kopiert habe, damit sie damit arbeiten kann, und ihr den Button gesperrt habe, mit dem man neue Artikel in die Datenbank einfügen kann. Denn jetzt existieren zwei Versionen der gleichen Datenbank und das gibt ein heilloses Durcheinander.
Ich habe inzwischen die Datenbanken von den Tools gelöst, das Schreiben von Etiketten funktioniert auch problemlos. Nur das Eintragen neuer Artikel macht mir Schwierigkeiten. Innerhalb der selben Datei ist es kein Problem, aber in der nun externen Datenbank will es nicht klappen.
Hier mein Code (bisher):
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Workbooks.Open Filename:= _
"'S:\Verwaltung\Etikettenabteilung\BarTender\Vorlagen\DQ Etikettentool.xlsm'"
For Each rngCell In Workbooks("'DQ Etikettentool.xlsm'").Range("Plural!a2:a10000")
If rngCell.Value "" Then
i = i + 1
End If
Next rngCell
With ActiveWorkbook.Sheets("Plural")
With ActiveWorkbook.Sheets("Singular")
ThisWorkbook.Sheets("Plural").Cells(i + 2, 1) = TextBox23.Value
ThisWorkbook.Sheets("Singular").Cells(i + 2, 1) = TextBox23.Value
If CheckBox2.Value = True Then
ThisWorkbook.Sheets("Plural").Cells(i + 2, 13).Value = "Hersteller"
ThisWorkbook.Sheets("Singular").Cells(i + 2, 13).Value = "Hersteller"
End If
End With
End With
Application.ScreenUpdating = False
Hide
MsgBox ("Datensatz Nr. " & i + 1 & " erfolgreich an Position Nr. " & i + 2 & " eingepflegt.")
End Sub
Die Variable i ist in Modul 1 public deklariert und zählt die Anzahl der nicht leeren Zellen, damit der nächste Eintrag in die darauffolgende Zelle geschrieben werden kann.Der Code ist für die Übersichtlichkeit auf jeweils ein Beispiel für Textbox und Checkbox gekürzt.
Ich weiß natürlich, dass man den Code eleganter gestalten könnte, aber darum kann ich mich später kümmern, jetzt soll es funktionieren.
Mit diesem Code werden die neuen Artikel immer noch in die internen Datenbanken geschrieben.
Irgendwo mache ich einen Fehler, aber ich weiß einfach nicht, wo.