Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA - MsgBox "speichern"
#1
Hi Leute, 

Ich benötige eure Hilfe bei folgendem Problem: 

Ich habe eine Excelmappe, die von diversen Kollegen genutzt wird (meist in einer aufgrund der Netzwerkstruktur vorgegebenen schreibgeschützen Version).
Die Mappe enthält eine Auflistung von Mitarbeitern. Beim Öffnen wird geprüft, ob ein oder mehrere Mitarbeiter gelöscht wird. 
Bislang wird das Löschen dann per MsgBox ausgegeben, damit man eine Rückmeldung bekommt. 
Das Problem ist jedoch, dass die msgbox dann unzählige Male angezeigt wird, bis ein Speicherberechtigter die Mappe öffnet und speichert. 
Ich habe mir gedacht, dass ich die msgboxes zwischenspeichern möchte, bis der Chef die mappe öffnet - ist das möglich? Das auslesen, Wer die Mappe öffnet bekomme ich hin. Nur müssten die msgboxes gespeichert werden. 
Ich bin gewillt mich in die Materie zunächst selber reinzuarbeiten, brauche nur eine Hilfe in welche Richtung ich schauen muss. 

Danke und Gruß
Antworten Top
#2
Hi,

so?

Code:
If Environ("username") = "chef" Then
MsgBox "Willkommen chef!"
End If
LG
Alexandra
Antworten Top
#3
Hi alexandra, 

Genau so würde ich den Chef ansprechen. Das Problem ist nur, dass die Mitarbeiter ja gelöscht werden sollen, wenn ein anderer Speicherberechtigter die datei löscht. Die Rückmeldung des Löschens soll dann aber nur der Chef bekommen. 

Habe das Problem wohl nicht richtig erklärt :)

Ich stelle mir das irgendwie in der Art vor, dass, wenn jemand gelöscht wird, speichert die Mappe eine Variable A ab.
Einen Tag später wird noch einer gelöscht und die Mappe speichert dies in Variable B. 
Am gleichen Tag öffnet der Chef die datei und es ploppen zwei msgboxes auf, dass die beiden gelöscht wurden.
Antworten Top
#4
Variablen sind da der falsche Zugang, da sie flüchtig sind (deshalb sind sie ja variabel). Sprich, nach Codeausführung sind sie wieder dahin.

Schreibe die entsprechenden Namen doch in eine separate Tabelle, das Tabellenblatt kann ja auch ausgeblendet werden.
Sobald sich der Chef die Mappe öffnet, erscheinen die Boxen und im Anschluss wird der Inhalt der Hilfstabelle gelöscht. Etwa in de Stil
Code:
Dim i As Integer, Name As String
With Sheets("Hilfstabelle")
    If Environ("username") = "chef" Then
        For i = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
            Name = Name & Chr(10) & .Cells(i, 1)
        Next i
        MsgBox Name
        .Range("A1:A100").EntireRow.Delete
    End If
End With

Für mehr Info bräuchte ich aber schon eine Beispielmappe, das bisher Beschriebene ist mir zu wischiwaschi.
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • EasY
Antworten Top
#5
Code:
Sub M_snb()
   MsgBox Join(Application.Transpose(Columns(1).SpecialCells(2)), vbLf)
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • EasY
Antworten Top
#6
Oh mein Gott Berni...manchmal sieht man den Wald vor lauter Bäumen nicht. Dann kann ich auch alle Namen in eine msg Box schreiben anstatt 10 msgboxen nacheinander auszulösen... Danke dir. 

Snb liefert - wie immer - einen Ansatz den ich nicht verstehe ;). Kannst du mir erklären was da passiert? Zwischenzeitlich Google ich schonmal. 

Danke euch schonmal :)

Kann es sein, dass die funktion nen Array erstellt, um die Namen der Hilfstabelle dann nacheinander in einer msgbox darzustellen?
Antworten Top
#7
Hallöchen,

jein Smile

Die Funktion von Bernie sammelt die Namen einzeln und bildet eine Zeichenkette.
Die Funktion von snb bildet aus den gefüllten Zellen ein Array und macht daraus mit join eine Zeichenkette, die die Massagebox ausgeben kann.
Mal abgesehen vom kürzeren Code in diesem Fall ist es oft auch performanter, die Daten aus Zellen in einem Rutsch in ein Array zu nehmen und weiterzuverarbeiten bis hin zum Rückschrieben das Array in den Zellbereich, auch wieder in einem Rutsch.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste