Excel-Makro für Gliederungscodierungstabelle

Hallo ihr alle
Mein Problem besteht darin, ein Makro zu erstellen, das es ermöglicht, sobald die Datei geöffnet wird (in einem Netzwerk und für mehrere Benutzer), das Datum des heutigen Tages in die gewünschte Zeile zu setzen, sowie die Farbe des Benutzers, der in eine Zeile geschrieben hat, die Kodierung des Plans.

Auf diese Weise können Sie nachvollziehen, wie viel und von wem die Pläne erstellt werden.

Da der Computer einen bestimmten Namen im Netzwerk hat, können Benutzer, die ihre Pläne in der Tabelle codieren, einen eigenen Farbcode verwenden.
Ist es möglich?


Vielen Dank im Voraus


classeur_test.xlsx

Hallo.

 

Wenn ich richtig verstehe, was Sie tun wollen: Der Benutzer öffnet die Excel-Datei, gibt die Plannummer an, schließt die Excel-Datei?

Geben Sie doch gleichzeitig das Datum und den Benutzernamen ein. Ich mag Makros sehr... aber ich habe ein wenig Angst, dass Sie Ihre Datei unnötig verkomplizieren, oder?

3 „Gefällt mir“

durch 2 Formen:

Die erste, die die gewünschte Aktion bestimmt: neuer CODIF / Abfrage der Datei

die zweite für das neue CODIF.

Farbe kann durch bedingte Formate erhalten werden.

Alles, was Sie tun müssen, ist, die ID des Benutzers abzurufen (a priori können Sie dies tun).

1 „Gefällt mir“

@Stefbeno: Für den Benutzernamen ist es

 

name = Anwendung.Benutzername

 

Dabei ist "name" die Variable. (Ja, ich hatte etwas sehr Kompliziertes erwartet. Aber eigentlich nicht ^^)

 

2 „Gefällt mir“

Hallo

Vorsichtig Excel erlaubt es nur zwei Benutzern, eine einzelne Datei gleichzeitig zu bearbeiten!

Wenn Utilisateur_1 die Datei öffnet, indem sie zum Schreiben darauf zugreift, können Utilisateur_2 nicht zum Schreiben auf die Datei zugreifen.

3 „Gefällt mir“

Vielen Dank für Ihre Hilfe, ich werde mich darum kümmern und Sie auf dem Laufenden halten.

Wenn Sie Beispiele haben, bin ich ein Abnehmer.
Vielen Dank für Ihre Antwort

Stimmen Sie @Remrem zu

 

Und wenn nicht, weil ich ein wenig Zeit hatte:

 

Sub AutoName()

Name = Application.UserName ' Benutzername

Derline = Tabelle1.Zellen(1, "B"). Ende(xlDown). Zeile' Holt die letzte nicht leere Zeile der Spaltenzelle "Datum" sheet1 aus der Zelle "B3"

Tabelle1.Zellen(derligne, "b") = Datum 'Das Datum des Tages eingegeben


coul = Cells.Find(Name, Cells(1, "E")). Interior.ColorIndex: 'Ruft die Farbe des Felds mit dem Benutzernamen ab.
range(Zellen(Derligne, "A"), Zellen(Derligne, "C")). Interior.ColorIndex = Farbe

Ende Sub

 

Seien Sie auf der anderen Seite vorsichtig. Der Benutzername muss zwischen der Excel-Datei und dem PC STRENG gleich sein, sonst kann er nicht finden (die gleichen Leerzeichen, die gleiche Großschreibung usw. usw.).

Ich glaube weiterhin, dass es eine Quelle der Langeweile für Ihr Ding ist!

3 „Gefällt mir“

Danke coin37coin,
Nein, nicht tkt, es ist für vereinfachte eine Word-Datei, die von Hand ausgefüllt werden muss. Es gibt einige, die es schaffen, manchmal Fehler zu machen. Wann fahren wir zu schnell...
Danke, ich teste das alles.
 

Hallo, ich habe das Makro ausprobiert. Es funktioniert nicht.

Es ist überraschend, es hat gestern sehr gut funktioniert.

 

Auf welcher Ebene blockiert es?

 

Edit: So viel für mich, sie schrieb anstelle der letzten Zeile (kleine Diskrepanz)

 

Sub AutoName()

Name = Application.UserName ' Benutzername
Derline = Tabelle1.Zellen(1, "B"). Ende(xlDown). Zeile' Holt die letzte nicht leere Zeile der Spaltenzelle "Datum" sheet1 aus der Zelle "B3"
line = Derline + 1 'Füge eine Zeile hinzu, die auf einem Rohling gehen soll
Tabelle1.Zellen(Zeile, "b") = Datum


coul = Cells.Find(Name, Cells(1, "E")). Interior.ColorIndex: 'Ruft die Farbe des Felds mit dem Benutzernamen ab.
range(Zellen(Zeile, "a"), Zellen(Zeile, "c")). Interior.ColorIndex = Farbe

Ende Sub

2 „Gefällt mir“

Hallo

Hier ist das korrigierte Makro, aber es hängt von der Reihenfolge der Aktionen des Benutzers ab:

Er wird zuerst in seinem Zeugnis am Ende der Liste schreiben ?

Sub AutoName()

Name = Application.UserName ' Benutzername

Derligne = Blätter("Blatt1"). cells(1, "A"). Ende(xlDown). Zeile' Holt die letzte nicht leere Zeile der Spaltenzelle "Datum" sheet1 aus der Zelle "B3"

Blätter("Sheet1"). Zellen (Derligne, 2). Value = Date 'Das Datum des Tages eingegeben


Set cell = Cells.Find(what:=Name, LookAt:=xlWhole) 'Ruft die Farbe des Feldes mit dem Benutzernamen ab
coul = Zelle. Interior.ColorIndex
range(Zellen(Derligne, "A"), Zellen(Derligne, "C")). Interior.ColorIndex = Farbe

Ende Sub

2 „Gefällt mir“

In der Tat zwei verschiedene Versionen.

 

Bei @PL's gibst du zuerst die Referenz ein und dann setzt er das Datum und die Farbe in auto.

Bei mir gibt er das Datum und die Farbe in auto ein und dann setzen Sie die Referenz.

 

@PL: Zu Ihrer Information, Sie geben Ihrem Makro nur die Wahl, "Benutzer 2" für die Farbe zu nehmen;) (oder mir entgeht etwas)

1 „Gefällt mir“

Ich habe Ihr erstes coin37coin-Makro wiederverwendet und es funktioniert tatsächlich, aber ich teste Ihr zweites, um es zu sehen.

Ja ich habe korrigiert, ich hatte für Benutzer 2 getestet und ich habe vergessen zu modifizieren  ! 

2 „Gefällt mir“

Danke für all das Makro,

Ich kann das Makro nicht mit der Schaltfläche einfügen. Das Makro befindet sich nicht mehr an der Öffnung. Ich werde verrückt.
Hier ist die neue Tabelle


classeur_test.xlsx

Für die Schaltfläche müssen Sie auf die Registerkarte "Entwickler" gehen = > einfügen = > Schaltfläche

Dann fügen Sie die Schaltfläche in Ihr Blatt ein, als wäre es eine Notiz (ein Links- und Rechtsklick nach links, um die Größe einzustellen), dann klicken Sie mit der rechten Maustaste auf die Schaltfläche => weisen Sie ein Makro = zu > wählen Sie Ihr Makro aus der Liste aus

 

Auf der anderen Seite muss das Makro natürlich in Ihrem Visual Basic vor

 

Um die Entwicklerregisterkarte anzuzeigen (falls Sie sie nicht haben), müssen Sie zu Datei = > Optionen = > Passen Sie das Menüband an = > klicken Sie auf das Feld "Entwickler" in den Hauptregisterkarten, wenn Sie dies nicht tun

 

Ich verrate es Ihnen nicht in der Datei, weil ich denke, dass es besser ist, ein wenig zu kämpfen und zu lernen, als eine schlüsselfertige Lösung zu haben;)

 

Bearbeiten: Sie werden vorsichtig sein, Sie hinterlassen viele Informationen in Ihren Dateien zwischen dieser und der vorherigen. Frage Es gibt den Namen Ihrer Kollegen oder die komplette Liste der Teile Ihres Unternehmens. Ich rate Ihnen, Ihre Nachrichten zu bearbeiten und zu entfernen/zu ändern.


bouton_vba.png

Tatsächlich akzeptieren xlsX-Dateien keine Makros: Sie werden gelöscht, wenn sie geschlossen werden!

Sie müssen sich entweder unter xlsM registrieren. oder speichern Sie in .XLS (alte Version 97).

2 „Gefällt mir“

Vielen Dank .PL, deshalb funktioniert es nicht.

Mit dem Button funktioniert es nicht.

Schauen Sie sich die Datei an, ob ich derjenige bin, der etwas falsch gemacht hat.


classeur_test.xlsm

Für mich funktioniert es gut

 

Zwei Bemerkungen jedoch:

 

-> Sie schreiben in die letzte Zeile (Ref. 20244). Und nicht auf der letzten + 1 Zeile Kleine Änderungslinie wie bei meinem 2. Makro

 

-> Sie haben die Grenzen der VBA erreicht: Wenn es nicht funktioniert, liegt es daran, dass Sie den Benutzernamen nicht GENAU so geschrieben haben, wie er in der Maschine eingegeben wurde. Das habe ich ganz am Anfang der Frage gesagt: Es wird eine ständige Fehlerquelle sein, sobald ein neuer Benutzer hereinplatzt.

 

Ich werde Ihnen daher raten, ein kleines Makro zu erstellen, das mit jedem Benutzer basierend auf Folgendem durchgeführt wird:

Sub DefName ()

Name = Anwendung.Benutzername

ActiveCell = Name

Ende Sub

 

Sie müssen nur das Feld auswählen, in das der Name eingegeben werden soll, das Makro starten und schon ist es korrekt ausgefüllt. Zu tun für jeden der Anwesenden

 

1 „Gefällt mir“