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?
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?
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!
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.
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
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
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
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.
-> 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