Registriert seit: 27.09.2016
Version(en): 2010
Hallo an Alle
kurz vorweg mein Wissen besteht aus zusammen suchen und es wissen wollen.
Excel 2010, Win7
Habe eine Datein mit einem Blatt bestehend aus 3 Spalten A,B,C
A= Name
B= Datum
C = Datum ermittelt mit Formel 6 Monate später
Möchte gerne nach dem Öffnen der Datei eine Msgbox angezeigt bekommen mit Name und Datum fällig aus Spalte C
Mein Code bis heute
Private Sub Workbook_Open()
Sheets("Deckblatt").Select
msgbox "Wichtiger Hinweis Nachprüfungen stehen an", vbCritical, "ACHTUNG!!!"
Dim strText As String
strText = " wichtig !!!"
Text = "Folgene Azubis müssen zur Nachprüfung:" & ActiveCell.Value
msgbox Text, vbOKOnly, "Auflistung"
Meine erste MsgBox öffnet beim Anfang und erscheint, aber wie mache ich das mit dem Hinweis der Namen?
Danke für die Hilfe
artcreativity
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Moin!
Was genau meinst Du mit "mit Name und Datum fällig aus Spalte C"?
Genaue Übereinstimmung mit dem Tagesdatum oder eher die nächsten sieben Tage?
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 21.07.2016
Version(en): 2007
Hi,
mein Testszenario:
Tabelle1 | A | B | C |
1 | Name | Datum | Nachprüfung |
2 | Azubi 1 | 02.02.2016 | 31.07.2016 |
3 | Azubi 2 | 02.04.2016 | 29.09.2016 |
4 | Azubi 3 | 15.03.2016 | 11.09.2016 |
5 | Azubi 4 | 15.04.2016 | 12.10.2016 |
6 | Azubi 5 | 06.06.2016 | 03.12.2016 |
7 | Azubi 6 | 02.01.2016 | 30.06.2016 |
8 | Azubi 7 | 18.01.2016 | 16.07.2016 |
Formeln der Tabelle |
Zelle | Formel | C2 | =B2+180 | C3 | =B3+180 | C4 | =B4+180 | C5 | =B5+180 | C6 | =B6+180 | C7 | =B7+180 | C8 | =B8+180 |
|
Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8 Der Code gehört hinter "Diese Arbeitsmappe":
Private Sub Workbook_Open()
Dim zm As Long
Dim Feld As Range
Dim Fällig As String
zm = Cells(Rows.Count, 1).End(xlUp).Row
For Each Feld In Range("C2", "C" & zm)
If Feld.Value < Date Then
Fällig = Fällig & Feld.Offset(0, -2) & " " & Feld.Value & vbNewLine
End If
Next Feld
MsgBox "Nachprüfung fällig bei " & vbNewLine & Fällig
End Sub
VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media
Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0
Gruß
Ich
Registriert seit: 27.09.2016
Version(en): 2010
HalloIch,
erst einmal danke die Richtung stimme:
Wofür steht
(0, -2)
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Moin!
Ergänzend, da 6 Monate nie 180 Tage sind:
=EDATUM(B2;6)
Die MsgBox anzuzeigen, wenn das Kind bereits in den Brunnen gefallen ist, halte ich für kontraproduktiv in Bezug auf Erhaltung des Arbeitsplatzes. :21:
Deshalb meine Nachfrage in #2
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 21.07.2016
Version(en): 2007
Hi,
ich durchsuche die Zellen (Feld) in Spalte C.
Feld.Offset liefert einen Versatz zu dem gerade "angesprochenen" Feld.
(0, -2) bedeutet in der gleichen Zeile 2 Spalten nach links.
2 Spalten nach rechts wäre (0, 2).
Gruß
Ich
Registriert seit: 21.07.2016
Version(en): 2007
(03.10.2016, 11:45)RPP63 schrieb: Moin!
Ergänzend, da 6 Monate nie 180 Tage sind:
=EDATUM(B2;6)
Die MsgBox anzuzeigen, wenn das Kind bereits in den Brunnen gefallen ist, halte ich für kontraproduktiv in Bezug auf Erhaltung des Arbeitsplatzes. :21:
Deshalb meine Nachfrage in #2
Gruß Ralf
Ralf wieder :19: :32:
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Genau! :05:
Und wenn ich schon beim Meckern bin: :21:
Was nutzt so eine MsgBox?
Schreibt dann jemand den Inhalt ab? :19:
Imo wäre es sehr viel sinnvoller, beim Mappenstart Spalte C aufsteigend zu sortieren und (gleichzeitig) eine bedingte Formatierung auf die Daten loszulassen:
Vergangenheit: rot
nächste zwei Wochen: orange
danach: grün oder nüscht
My two cents,
Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 27.09.2016
Version(en): 2010
Hall an alle Helfer,
es handelt sich hierbei um reine interne Prüfung niemand verleirt seinen Job.
Natürlich habe ich meine Datei mit einer bedingten Formatierung versehen, sa dass es bunt wird.
Diese Msgbox soll bei der Öffnung die Namen und Datum anzeigen der Nachprüflinge und gleichzeitig wird eine Emal an die entsprechende Person versendet.
Die Datei besteht aus mehreren Blättern mit vielen Daten.
Deshalb habe ich den Code geändert und auf das richtige Blatt zugegriffen.
Private Sub Workbook_Open() 'es erscheint eine MsgBox
Sheets("Prüflinge").Select
Dim zm As Long
Dim Feld As Range
Dim Fällig As String
zm = Cells(Rows.Count, 1).End(xlUp).Row
For Each Feld In Range("C2", "F" & zm)
If Feld.Value < Date Then
Fällig = Fällig & Feld.Offset(0, -2) & " " & Feld.Value & vbNewLine
End If
Next Feld
msgbox "Nachprüfung fällig bei: " & vbNewLine & Fällig
Spalte A = Name
Spalte B= Vorname
Spalte C = P-Nr.
Spalte D = Interne Nr
Spalte E = Prüfdatum
Spalte F = =DATUM(JAHR(E2);MONAT(E2)+6;TAG(E2)) versehen mit bedingter Formatierung zur farbigen Darstellung
Habe nur 45 Prüflinge, also A1:A45
Leider zeigt der Code noch die falsche Spalte für den Namen an.
Wenn ich C2 ändere in A2 kommt Laufzeitfehler.Also habe ich einen Denkfehler und bitte doch nochmal um Hilfe.
Möchte doch gerne alles verstehen und endlich dazu lernen.
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
Mahlzeit!
Zitat:Diese Msgbox soll bei der Öffnung die Namen und Datum anzeigen der Nachprüflinge und gleichzeitig wird eine Emal an die entsprechende Person versendet.
Wie soll das geschehen?
VBA?
Welches Mail-Programm?
(Ich mag Salami nur auf Brot oder Pizza, aber nicht als Taktik)
Zitat:Wenn ich C2 ändere in A2 kommt Laufzeitfehler.
Logo!
Du hast doch die Code-Erklärung von "Ich" bereits erhalten:
Es gibt keine Spalte links neben A
Willst Du wirklich auf einmal einen Bereich über 4 Spalten überwachen?
Wie wäre es mit einer anonymisierten Datei?
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)