Autor |
Nachricht |
Beck
Im Profil kannst Du frei den Rang ändern
Verfasst am: 26. Apr 2011, 14:10 Rufname:
|
|
Version: Office 2003 |
|
Hallo Zusammen,
Ich habe Probleme mit Pflichtfelder.
Spalte D kann oder keine Wert haben. Bsp. Wenn D33 Wert hat, dan müssen E33 und F33 Wert haben. Wenn keine Eingabe zu E33 und F33, Fehlermeldung muss erscheinen, und es soll nicht weitergehen.
Pflichtfelder - E33:E79, E86:E97 und F33:F79
Danke&Grüsse,
Beck
|
|
helikopf
Excellaner
Verfasst am: 26. Apr 2011, 15:28 Rufname:
Wohnort: Bayern
|
| |
Version: Office 2003 |
|
Hallo,
um Deine Pflichtfelder aktivieren zu können bedarf es irgend einer Aktion - wie soll die denn aussehen bzw. wann soll die Fehlermeldung erscheinen (beim Verlassen des Blattes / eines Bereichs, bei weiterer Eingabe, ...)?
Servus, Helmut
|
|
Beck
Im Profil kannst Du frei den Rang ändern
Verfasst am: 26. Apr 2011, 15:39 Rufname:
|
|
Version: Office 2003 |
|
Hallo,
Die Fehlermeldung soll bei weiterer Eingabe erscheinen. Ich denke mann braucht Change Ereigniss.
Danke,
Beck
|
|
helikopf
Excellaner
Verfasst am: 26. Apr 2011, 15:48 Rufname:
Wohnort: Bayern
|
|
Version: Office 2003 |
|
Hallo,
genau, das Change-Ereignis könnte die Meldung auslösen - aber nach welcher Eingabe? Beschreib' doch mal genauer, was eigentlich passieren soll. Wird z. B. in D33 etwas eingegeben und danach in D34 gewechselt -> Fehlermeldung?
Sorry, aber die bisherigen Angaben sind zu dürftig.
Servus, Helmut.
|
|
Beck
Im Profil kannst Du frei den Rang ändern
Verfasst am: 26. Apr 2011, 16:18 Rufname:
|
| |
Version: Office 2003 |
|
Hallo,
D33 ist Tätigkeit Feld, E33 is ProjectNr
F33 ist Projectname.
Wenn D33 leer ist, E33 und F33 können leer bleiben. Aber wenn man in D33 Tätigkeit eingibt, danach in D34 wechselt -> Fehlermeldung muss kommen.
Tätigkeit - D33-D97
Pflichtfelder sind - E33:E79, E86:E97
F33:F79
Danke,
Beck
|
|
helikopf
Excellaner
Verfasst am: 26. Apr 2011, 16:30 Rufname:
Wohnort: Bayern
|
|
Version: Office 2003 |
|
Hallo,
das könntest du über Eingabedialoge für Projektnummer und -name machen:
Code: | Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
Dim strProjectNr As String
Dim strProject As String
If Intersect(Target, Range("D33:D97")) Is Nothing Then Exit Sub
Projektnummer:
strProjectNr = InputBox("Project Nr.", "Bitte Project-Nr. eingeben:")
If strProjectNr = "" Then GoTo Projektnummer
Target.Offset(0, 1) = strProjectNr
Projektname:
strProject = InputBox("Project Name", "Bitte Project-Name eingeben:")
If strProject = "" Then GoTo Projektname
Target.Offset(0, 2) = strProject
End Sub |
Der Code gehört in den Code-Til deiner Tabelle, Bereiche und Beschreibungen müssen evtl. noch angepasst werden.
Servus, Helmut.
|
|
helikopf
Excellaner
Verfasst am: 26. Apr 2011, 16:33 Rufname:
Wohnort: Bayern
|
|
Version: Office 2003 |
|
Hallo noch mal,
leider eine Zeile vergessen:
Code: | If Target = "" Then Exit Sub |
Gehört noch nach
Code: | If Intersect(Target, Range("D33:D97")) Is Nothing Then Exit Sub | eingefügt.
Servus, Helmut.
|
|
Beck
Im Profil kannst Du frei den Rang ändern
Verfasst am: 26. Apr 2011, 16:40 Rufname:
|
|
Version: Office 2003 |
|
Hallo,
Ich werde ausprobieren.
Herzlichen Dank für die hervorragende Hilfe.
Beck
|
|
Beck
Im Profil kannst Du frei den Rang ändern
Verfasst am: 26. Apr 2011, 17:40 Rufname:
|
|
Version: Office 2003 |
|
Hallo,
Vielen Danke.Es funktioniert super.
Noch mal Frage.
a.Manche Tätigkeit Felder ziechen sich Eingaben automatisch. z.B. Wenn mann in Feld C35 70 eingibt, Feld D35 mit zusammenhängendem Tätigkeit gefüllt wird.
b. Zwischen D80:D86 es gibt keine Pflichtfelder.
Ab D86:D97 nur ProjectNr ist Pflichtfeld.
Danke,
Beck
|
|
helikopf
Excellaner
Verfasst am: 26. Apr 2011, 17:50 Rufname:
Wohnort: Bayern
|
|
Version: Office 2003 |
|
´Hallo,
das ist dann leider nicht so ohne Weiteres umzusetzten da für jeden Sonderfall eine separate Behandlung nötig ist -> entweder die Tabelle sauber strukturieren und mit Beispieldaten hier einstellen oder mit der aktuellen Lösung leben.
Die Anpassung für die letzten Zeilen geht noch recht einfach, alles Andere wie gesagt eher Aufwändig:
Code: | If Intersect(Target, Range("D33:D85")) Is Nothing Then Exit Sub |
... nach Projektname: einfügen
Servus, Helmut.
|
|
helikopf
Excellaner
Verfasst am: 02. Mai 2011, 08:36 Rufname:
Wohnort: Bayern
|
|
Version: Office 2003 |
|
Guten Morgen,
die Datei von Dir habe ich jetzt angeschaut und um den Bereich der Meldung anzupassen musst Du immer den Range() anpassen. Der neue Code sieht dann so aus:
Code: | Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
Dim strProjectNr As String
Dim strProject As String
If Intersect(Target, Range("D26:D30", "D33:D79", "D86:D97")) Is Nothing Then Exit Sub
If Target = "" Then Exit Sub
Projektnummer:
strProjectNr = InputBox("Project Nr.", "Bitte Project-Nr. eingeben:")
If strProjectNr = "" Then GoTo Projektnummer
Target.Offset(0, 1) = strProjectNr
Projektname:
If Intersect(Target, Range("D26:D30", "D33:D79")) Is Nothing Then Exit Sub
strProject = InputBox("Project Name", "Bitte Project-Name eingeben:")
If strProject = "" Then GoTo Projektname
Target.Offset(0, 2) = strProject
End Sub |
Anzupassender Bereich bei Änderung der Datei:
If Intersect(Target, Range("D26:D30", "D33:D79", "D86:D97")) Is Nothing Then Exit Sub
und
If Intersect(Target, Range("D26:D30", "D33:D79")) Is Nothing Then Exit Sub
Servus, Helmut.
Beschreibung: |
|
 Download |
Dateiname: |
Pflichtfelder.xls |
Dateigröße: |
123 KB |
Heruntergeladen: |
19 mal |
|
|
Beck
Im Profil kannst Du frei den Rang ändern
Verfasst am: 02. Mai 2011, 11:12 Rufname:
|
|
Version: Office 2003 |
|
Hallo Helmut,
Es funktioniert super.
Danke,
Beck
|
|
Beck
Im Profil kannst Du frei den Rang ändern
Verfasst am: 03. Mai 2011, 10:43 Rufname:
|
|
Version: Office 2003 |
|
Hallo,
Ich habe noch eine frage.
Ich will mit "Abbrechen" die Aktion annulieren und eingegebenen Wert in der Zelle löschen.
Manche Zellen sind Listboxen, manche nicht(z.B D33 ist Listbox, aber D48,D49 nicht. In der Zelle, mit den Listeboxen "Abbrechen" funktioniert gut.
Aber wenn mann den Wert manuel eintippt(wo keine Listboxen), kommt Inputbox (z.B in D48). "Abbrechen" löscht nicht aktuelle Zelle sondern nächste Zelle unten D49.
Aktulle Code
Code: |
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
Dim strProjectNr As String
Dim strProject As String
If Intersect(Target, Range("D33:D79,D86:D97")) Is Nothing Then Exit Sub
If Target = "" Then Exit Sub
Projektnummer:
strProjectNr = InputBox("Project Nr.", "Bitte Project-Nr. eingeben:")
If strProjectNr = "" Then
ActiveCell.Clear
Exit Sub
End If
Target.Offset(0, 1) = strProjectNr
Projektname:
If Intersect(Target, Range("D33:D79")) Is Nothing Then Exit Sub
strProject = InputBox("Project Name", "Bitte Project-Name eingeben:")
Target.Offset(0, 2) = strProject
End Sub
|
Danke & Grüße,
Beck
|
|
helikopf
Excellaner
Verfasst am: 03. Mai 2011, 14:51 Rufname:
Wohnort: Bayern
|
|
Version: Office 2003 |
|
Hallo,
dann musst Du das Makro so umstellen:
Code: | Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Err_WS_Change
Dim i As Long
Dim strProjectNr As String
Dim strProject As String
Application.EnableEvents = False
If Intersect(Target, Range("D26:D30, D33:D79, D86:D97")) Is Nothing Then Exit Sub 'bei Änderungen hier den Range anpassen
If Target = "" Then
Target.Offset(0, 1).ClearContents
Target.Offset(0, 2).ClearContents
Else
Projektnummer:
strProjectNr = InputBox("Project Nr.", "Bitte Project-Nr. eingeben:", "Project-Nr.")
If strProjectNr = "" Then
Target.ClearContents
Target.Offset(0, 1).ClearContents
Target.Offset(0, 2).ClearContents
GoTo Err_WS_Change
End If
If strProjectNr = "Project-Nr." Then GoTo Projektnummer
Target.Offset(0, 1) = strProjectNr
Projektname:
If Intersect(Target, Range("D26:D30, D33:D79")) Is Nothing Then Exit Sub 'bei Änderungen hier den Range anpassen
strProject = InputBox("Project Name", "Bitte Project-Name eingeben:", "Project Name")
If strProject = "" Then
Target.ClearContents
Target.Offset(0, 1).ClearContents
Target.Offset(0, 2).ClearContents
GoTo Err_WS_Change
End If
If strProject = "Project Name" Then GoTo Projektname
Target.Offset(0, 2) = strProject
End If
Err_WS_Change:
If Err Then
MsgBox Err.Number & " " & Err.Description
End If
Application.EnableEvents = True
End Sub |
Jetzt wird die Eingabe in Spalte D gelöscht, sobald Abbrechen gewählt wird. Wird ein Eintrag aus D entfernt, so werden auch die Werte in E und F gelöscht.
Servus, Helmut.
|
|
Beck
Im Profil kannst Du frei den Rang ändern
Verfasst am: 03. Mai 2011, 16:33 Rufname:
|
| |
Version: Office 2003 |
|
Danke sehr
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum herunterladen
|
|
|
Verwandte Themen |
Forum / Themen |
Antworten |
Autor |
Aufrufe |
Letzter Beitrag |
 |
Excel VBA (Makros): Excel 2010: Pflichtfelder mit "Entweder-Oder-Bereich&qu |
13 |
JaneDoe |
372 |
03. Sep 2013, 16:00 Jane Doe  |
 |
Excel Hilfe: Pflichtfelder bei Exel mit VBA |
0 |
88Tommy88 |
106 |
04. Apr 2013, 11:18 88Tommy88  |
 |
Excel VBA (Makros): Senden wenn alle Pflichtfelder erfült sind |
5 |
KevinL |
197 |
27. März 2013, 14:37 Gast  |
 |
Excel VBA (Makros): Pflichtfelder definieren im Excel |
4 |
across_theuniverse |
733 |
29. Jan 2013, 14:47 across_theuniverse  |
 |
Excel VBA (Makros): Pflichtfelder in UserForm |
0 |
Benjaminus |
173 |
24. Sep 2012, 10:23 Benjaminus  |
 |
Excel VBA (Makros): Pflichtfelder |
0 |
NutnikSpirkes |
313 |
28. Jun 2011, 08:53 NutnikSpirkes  |
 |
Excel VBA (Makros): Zwei unabhängige Pflichtfelder msgBox |
3 |
hösch |
271 |
24. Mai 2011, 10:49 hösch  |
 |
Excel Hilfe: Datenbank - Pflichtfelder füllen |
3 |
Problemdatenbank |
515 |
06. Apr 2011, 15:54 Gast  |
 |
Excel VBA (Makros): Pflichtfelder umgehen |
6 |
Gast |
374 |
10. Feb 2011, 15:44 Gast  |
 |
Excel VBA (Makros): Kein Drucken bevor Pflichtfelder gefüllt sind |
3 |
alcapone489 |
1300 |
23. Dez 2010, 10:13 < Peter >  |
 |
Excel VBA (Makros): abspeicherung verhindern, wenn pflichtfelder leer - IsEmpty |
2 |
fippo |
479 |
28. Sep 2010, 12:43 fippo  |
 |
Excel VBA (Makros): abspeicherung verhindern, wenn pflichtfelder leer - IsEmpty |
0 |
fippo |
194 |
28. Sep 2010, 11:21 fippo  |
|
|