Datenbank Excel VBA laufende Nr.

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Datenbank Excel VBA laufende Nr.
von: NewOne
Geschrieben am: 05.06.2015 11:02:08

Hallo Forum,
ich hoffe Ihr könnt mir weiterhelfen. :-)
Ich habe folgendes Problem:
Im Unternehmen gibt es für die Kalkulation von Angebotspreisen ein Excel-Formular.
Dieses soll mit einer laufenden Nr. in einer externen Datenbank gespeichert und wieder in das Formular gebracht werden können. Das funktioniert auch soweit.
Zum Problem:
Das Formular wird zeitgleich von mehreren Nutzern genutzt (teilweise im Schreibschutz), so das es bei der Vergabe von laufenden Nr. zu Fehlermeldungen teilweise kommt.
vielleicht habt ihr eine Idee wie man das Problem lösen könnte. Für Anregungen wäre ich sehr dankbar.
Anbei der Quellcode der VBA Anwendung:
Dim a As String
a = MsgBox("Möchten Sie eine neue Kalkulation speichern?", vbYesNo, "NEUE KALKULATION SPEICHERN")
If a = vbYes Then
Application.ScreenUpdating = False
ActiveSheet.Unprotect
Range("BF51:BI51").Select
ActiveCell.FormulaR1C1 = "='G:\[Datenbank.xlsx]Tabelle2'!R1C1"
Range("BB42").Select
ActiveCell.FormulaR1C1 = "=R[9]C[4]+1"
Range("BF42").Value = "1"
'Erhöhen der laufenden Nummer
Workbooks.Open Filename:="G:\Datenbank.xlsx"
' Öffnen der Datenbank
Rows("2:2").Select
Selection.Insert Shift:=xlDown
Rows("2:2").EntireRow.AutoFit
' Einfügen einer neuen Zeile
Windows("KalkulationAngebote.xlsm").Activate
Sheets("Datensatz").Select
'Öffenen Tabellenblatt Datensatz
Rows("2:2").Select
Selection.Copy
Windows("Datenbank.xlsx").Activate
Rows("2:2").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
'Einfügen in Datenbank
Range("A2").Select
Application.CutCopyMode = False
ActiveWorkbook.Save
'Datenbank speichern
ActiveWindow.Close
'Datenbank schließen
Sheets("NEU").Select
Range("BF51").Select
Selection.Copy
Range("BB42").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("W1").Select
MsgBox "Der Datensatz wurde in der Datenbank als laufende Nummer " & Range("BB42").Text & " " & "gespeichert.", , ""


ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowInsertingRows:=True, AllowDeletingRows _
:=True



End If
End Sub

Bild

Betrifft: AW: Datenbank Excel VBA laufende Nr.
von: Klexy
Geschrieben am: 05.06.2015 17:52:38
Zentrale Excel-Datei für die Verwaltung der laufenden Nummer, die jeweils bei Nummernvergabe aufgerufen, beschrieben und geschlossen wird. First come, first serve. Die anderen kriegen eine Fehlermeldung und versuchen es nach 10 Sekunden noch einmal. Erst wenn das erfolgreich ist, läuft das restliche Makro weiter.
Wenn es nicht hunderte User sind, funktioniert das ganz gut.

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Datenbank Excel VBA laufende Nr."