Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1120to1124
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Adressliste

Adressliste
Missy
Hallo an alle Hilfsbereiten,
ich habe schon mal inseriert und keine Hilfe bekommen. Deshalb versuch ichs nochmal, habe meine Wünscheliste stark eingeschränkt und mich nur noch auf die Bugs konzentriert, die ich nicht weg bekomme. Das Script ist fertig, nur eben nicht zu 100% funktionsfähig.
Hoffe deshalb auf Hilfe welcher Art auch immer. Bugliste steht im Tabellenblatt, für Euch sicher Kleinigkeiten, für mich die Welt. Würde mich auf Unterstützung freuen.
Danke und Gruß
Michi
https://www.herber.de/bbs/user/66397.xls
AW: Adressliste
07.12.2009 08:27:29
fcs
Hallo Michi,
einen Teil deiner Probleme konnte ich bereinigen. Da war dann doch etwas mehr zu bereinigen als du evtl. gedacht hast.
Noch nicht funktioniert die Verarbeitung der Eingabe für die Wiedervorlage.
Hier muss noch irgend wie die Formel kopiert werden
Die Prüfung auf identische Datensätze fehlt auch noch.
Die Anzeige Datum Uhrzeit hab ich vereinfacht. Sie erfolgt jetzt wenn Buttons gedrückt werden.
Gruß
Franz
https://www.herber.de/bbs/user/66400.xls
AW: Adressliste
07.12.2009 14:39:26
Michi
Hallo Franz,
vielen Dank für die Mühe, ich weiß das wirklich zu schätzen. Ich habe das File geöffnet und bekomme leider nur Fehlermeldungen. Ich komme gar nicht soweit, das Forumlar auszuprobieren wegen dieser Fehlermeldungen. Woran kann das liegen? Hast du eine andere Excel-Version als ich? Ich benutze XL2003 und wahlweise noch XL2007, geht bei beiden nicht.
1. Kompilierungs-Fehler bei Time und Date
2. Fehler bei den Wiedervorlagen, wie du schon erwähnt hast, auch dort hängt er sich am Date auf, den
3. Prüfung auf Vollständigkeit wäre nicht nötig gewesen, es gehen durchaus Bewerbungen ein, die nur aus Anschreiben bestehen, ohne weitere Angaben...es soll also möglich sein, diesen Datensatz trotzdem anzulegen...trotzdem danke ;)
Sortierung funktioniert einwandfrei, vielen Dank
Prüfung der Datensätze...ich hab keine Ahnung, wie ich das am besten anstelle. Trotzdem vielen Dank für die Mühe, ich geb dir nen virtuellen Schokonikolaus dafür ;)
Falls noch jemand Ideen beim Rest hat, bitte die geuppte Datei von Franz verwenden zur Weiterbearbeitung.
Gruß und Danke Michi
Anzeige
AW: Adressliste
08.12.2009 08:51:19
fcs
Hallo Michi,
hier ein Update der Datei.
Bis auf Prüfung auf versehentlich Doppeleingabe funktioniert es jetzt wohl.
Gruß
Franz
https://www.herber.de/bbs/user/66421.xls
AW: Adressliste
08.12.2009 15:50:42
fcs
Hallo Michi,
hier der letzte Upgrade.
Jetzt sollte alles funktionieren inkl. Prüfung doppelter Datensätze ud einiger anderer für die Logik wichtiger Prüfungen.
Auch das Ausdrucken einzelner Kontakte aus dem UF funktioniert inkl. Zu-/Abwahl einiger Zeilen im UF Druckauswahl. Hierfür hab ich das Blatt "Kontakt" ergänzt.
https://www.herber.de/bbs/user/66437.xls
(Erstellt in Excel 2003)
Gruß
Franz
Anzeige
AW: Adressliste
08.12.2009 17:26:16
Wolfgang
Hallo und guten Tag Franz (fcs), Missy und Michi,
wie kann man diese Anwendung erweitern, um eine Uhrzeit (von / bis Uhr) von der UserForm1 in das Tabellenblatt „Daten“ ein- und wieder auszulesen. Die Zeitspanne (von-bis) sollte in der UserForm ebenfalls ersichtlich sein, also:
Beginn 08:30
Ende 13:45
Zeitspanne 05:15.
Das Zeitformat sollte hh:mm sein.
Da ich von VBA kaum Ahnung habe, bitte ich um Eure Hilfe.
Viele Grüße an Euch und an das das Forum
Wolfgang L.
AW: Adressliste
08.12.2009 17:46:12
Michi
Du bist ein Schatz Franz, jetzt funzt es einwandfrei...vielen, vielen Dank...
Kannst du mir trotzdem bitte noch sagen, was du geändert hast, damit es jetzt funktionert? Rein Interessehalber, man lernt ja gerne dazu..
Nochmal vielen, vielen Dank für alles...
Gruß Michi und einen wunderschönen Abend
Anzeige
AW: Adressliste
08.12.2009 17:50:22
Wolfgang
Hallo Michi,
hast Du meine Bitte gelesen?
Viele Grüße aus Bonn
Wolfgang L.
AW: Adressliste
08.12.2009 19:40:00
Michi
Hallo Wolfgang,
ich denke, deine Bitte hat sich durch Franz erledigt oder hab ich was überlesen? Ich bin leider genauso miserabel in vba wie du, deshalb bin ich auch sehr froh, daß mir Franz so lieb geholfen hat.
Gruß Michi, Missy oder einfach ich :D
AW: Adressliste für Wolfgang
08.12.2009 18:29:59
fcs
Hallo Wolfgang,
hier dann auch noch der spezieller Service für dich mit 2 zusätzlichen Zeitspalten.
https://www.herber.de/bbs/user/66439.xls
Gruß
Franz
AW: Adressliste für Wolfgang
08.12.2009 18:42:58
Wolfgang
Hallo Franz,
für die schnelle Antwort bedanke ich mich herzlich.
Genau so habe ich es mir vorgestellt.
Viele Grüße aus dem Bundesdorf Bonn
Wolfgang L.
Anzeige
AW: Adressliste für Wolfgang
08.12.2009 20:00:11
Wolfgang
Nochmals Hallo Franz,
ich habe noch einen Wunsch.
Ist es möglich die Zeitdifferenz (Dauer) aus der UserForm in die Spalte U einzutragen?
Meine händische Formel =SUMME(T..-S..), um die Zeitdifferenz zu ermitteln funktioniert, aber leider kann ich die Formel weder nach unten oder nach oben kopieren; denn es wird immer das gleiche Ergebnis (bei unterschiedlichen Zeiten) aus der Ursprungszelle kopiert.
Mach ich einen Fehler oder wird das Kopieren der Formel ab Spalte U durch VBA blockiert?
Hoffentlich falle ich Dir nicht „auf den Wecker“.
Nochmals viele Grüße
Wolfgang L.
Anzeige
AW: Adressliste für Wolfgang
08.12.2009 22:04:05
Michi
Ich hätte auch noch einen Nachtrag nach ausgiebigem Testen...*schäm*
Das mit der Sortierung innerhalb der Combobox funzt doch noch nicht so ganz, sind wohl eher zufallstreffer, aber das soll jetzt das geringste Problem sein, ansonsten sehr sehr gute Arbeit Franz
AW: Adressliste für Wolfgang
09.12.2009 08:28:11
fcs
Hallo Michi,
dein Problem mit der Sortierung in der Combobox kann ich nicht nachvollziehen. Bei mir erfolgt die Sortierung nach Eingabe von Namen jeweils einwandfrei.
Was die Anpassung zwischen meinen beiden Versionen angeht:
In der hochgeladen ZIP-Datei findest du den Code für Userform1 mit den markierten Änderungen.
Wesentlich sind :
- die Überprüfung auf Doppelte in der Prozedur für das Einfügen neuer Datensätze.
- Codes für die Textboxen 9, 10 und 14 rund um das Wiedervorlage Datum.
- Einschränkung der Eingabe für Geschlecht auf "", m oder w
- Functions Datum und ZelleDatum zur Verarbeitung von Textboxen mit Datumseingaben
Die Codes für die UF Kontaktdaten und Druckauswahl muss du dir halt mal genauer anschauen.
Wichtig hier:
Die Daten aus Steuerelementen anderer Userforms (auch die jener, die per Hide ausgeblendet sind) kann man über ihren vorangestellten Namen abrufen.
Vor der Anzeige der Seitenvorschau für den Druck müssen alle Userforms per Hide ausgeblendet werden, sonst "friert" Excel ein.
Gruß
Franz
https://www.herber.de/bbs/user/66449.zip
Anzeige
AW: Adressliste für Wolfgang
09.12.2009 06:59:54
fcs
Hallo Wolfgang,
die folgenden Anpassungen im Userform-Code fügen die Formeln ein. Ursprünglich hatte ich's schon drin. Dann deine Frage genau gelesen und die Formelerzeugung wieder in Komentare umgewandelt.
Nicht vergessen: Die Formatierung in Spalte U anzupassen - weiße Schrift auf weissen Grund ist nicht so besonders kontrastreich ;-)
Gruß
Franz
'Anzupassende Prozeduren um Code für Userform1
Private Sub Daten_Einlesen(Zeile As Long)
'Datensatz aus Tabellenblatt einlesen
With wksData
TextBox12.Text = .Cells(Zeile, 2).Text
TextBox15.Text = .Cells(Zeile, 3).Value
TextBox1.Text = .Cells(Zeile, 5).Value
TextBox2.Text = .Cells(Zeile, 6).Value
TextBox3.Text = .Cells(Zeile, 7).Value
TextBox4.Text = .Cells(Zeile, 8).Value
TextBox13.Text = .Cells(Zeile, 9).Value
TextBox5.Text = .Cells(Zeile, 10).Text
If .Cells(Zeile, 11).Value = "X" Then
Me.OptionButton1.Value = True
Else
Me.OptionButton1.Value = False
End If
TextBox6.Text = .Cells(Zeile, 12).Value
TextBox8.Text = .Cells(Zeile, 13).Value
TextBox14.Text = .Cells(Zeile, 14).Value
TextBox9.Text = .Cells(Zeile, 15).Text
TextBox10.Text = .Cells(Zeile, 16).Text
TextBox11.Text = .Cells(Zeile, 17).Text
TextBox7.Text = .Cells(Zeile, 18).Value
tboxVon.Text = .Cells(Zeile, 19).Text
tboxBis.Text = .Cells(Zeile, 20).Text
tboxDauer.Text = .Cells(Zeile, 21).Text ' ##### Ändern/vereinfachen alter Code kann auch  _
bleiben
End With
ListBox1.Clear
Call DateAndTime
End Sub
Private Sub CommandButton3_Click()
Dim letzte_Zeile As Long, Zeile As Long, lngAuswahl
Dim bolGanz As Boolean, bolTeil As Boolean, bolNeu As Boolean
With wksData
If fncEingabeCheck() = True Then
' Auf doppelte Eingabe prüfen
'Prüfung ob Datensatz mit identischen Daten nochmals gespeichert werden soll
bolGanz = True: bolTeil = True: bolNeu = True
For Zeile = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
' Daten in Userform mit Tabelle vergleichen
If Datum(.Cells(Zeile, 2).Text)  Datum(TextBox12.Text) Then bolGanz = False
If .Cells(Zeile, 3)  TextBox15.Text Then bolGanz = False
If .Cells(Zeile, 4)  ComboBox1.Text Then bolGanz = False: bolTeil = False 'Name
If .Cells(Zeile, 5)  TextBox1.Text Then bolGanz = False: bolTeil = False  'VorName
If .Cells(Zeile, 6)  TextBox2.Text Then bolGanz = False: bolTeil = False  'Adresse
If .Cells(Zeile, 7)  TextBox3.Text Then bolGanz = False: bolTeil = False  'PLZ Ort
If .Cells(Zeile, 8)  TextBox4.Text Then bolGanz = False
If .Cells(Zeile, 9)  TextBox13.Text Then bolGanz = False
If Datum(.Cells(Zeile, 10).Text)  Datum(TextBox5.Text) Then bolGanz = False
If Me.OptionButton1.Value = True Then
If .Cells(Zeile, 11)  "X" Then bolGanz = False
Else
If .Cells(Zeile, 11) = "X" Then bolGanz = False
End If
If .Cells(Zeile, 12)  TextBox6.Text Then bolGanz = False
If .Cells(Zeile, 13)  TextBox8.Text Then bolGanz = False
If .Cells(Zeile, 14)  TextBox14.Text Then bolGanz = False
'    .Cells(Zeile, 15)  TextBox9.Text 'WV-Datum wird in Tabelle berechent
If Datum(.Cells(Zeile, 16).Text)  Datum(TextBox10.Text) Then bolGanz = False
If Datum(.Cells(Zeile, 17).Text)  Datum(TextBox11.Text) Then bolGanz = False
If .Cells(Zeile, 18)  TextBox7.Text Then bolGanz = False
If Zeit(.Cells(Zeile, 19).Text)  Datum(tboxVon.Text) Then bolGanz = False
If Zeit(.Cells(Zeile, 20).Text)  Datum(tboxBis.Text) Then bolGanz = False
If bolGanz = True And bolTeil = True Then
If MsgBox("Ein identische Datensatz existiert bereitsmit ID """ & .Cells(Zeile, 1) _
& """ bereits in Zeile """ & Zeile & """!" & vbLf & vbLf _
& "Trotzdem neu anlegen?", vbQuestion + vbYesNo, _
"Prüfung doppelte Eingabe") = vbYes Then
bolNeu = True
Exit For
Else
bolNeu = False
Exit For
End If
ElseIf bolTeil = True Then
lngAuswahl = MsgBox("Datensatz für Name, Vorname, Adresse, PLZ Ort" & vbLf & vbLf _
& "existiert mit ID """ & .Cells(Zeile, 1) & """ bereits in Zeile """ & Zeile & """! _
" & vbLf & vbLf _
& "Datensatz ändern?" & vbLf _
& "(bei ""Nein"" wird neuer Datensatz angelegt)", vbQuestion + vbYesNoCancel, _
"Prüfung doppelte Eingabe")
If lngAuswahl = vbYes Then
bolNeu = False
Call Daten_Eintragen(Zeile:=Zeile)
Exit For
ElseIf lngAuswahl = vbNo Then
bolNeu = True
Exit For
Else
' weiter prüfen
End If
End If
bolGanz = True: bolTeil = True
Next
If bolNeu = True Then
' Datensatz neu speichern
letzte_Zeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
'neue ID ermitteln
If letzte_Zeile = 2 Then 'Erster Eintrag in Liste
.Cells(letzte_Zeile, 1) = 1
Else
.Cells(letzte_Zeile, 1) = Application.WorksheetFunction.Max(.Range(.Cells(2, 1), _
.Cells(letzte_Zeile - 1, 1))) + 1
End If
Set rngID = .Cells(letzte_Zeile, 1)
Call Daten_Eintragen(Zeile:=letzte_Zeile)
'Formel für Wiedervorlage-Datum in Spalte O einfügen
With .Cells(letzte_Zeile, 15)
.FormulaR1C1 = _
"=IF(RC[-1]"""",DATE(YEAR(RC[1]),MONTH(RC[1])+RC[-1],DAY(RC[1])),"""")"
End With
'Formel für Dauer in Spalte U einfügen
With .Cells(letzte_Zeile, 21)					'Kommentarzeichen löschen
.FormulaR1C1 = _
"=IF(AND(RC[-1]"""",RC[-2]""""),RC[-1]-RC[-2],"""")"	'Kommentarzeichen löschen
End With								'Kommentarzeichen löschen
End If
End If
End With
Call DateAndTime
End Sub

Anzeige
AW: Adressliste für Wolfgang
09.12.2009 18:20:43
Wolfgang
Nochmals Hallo und guten Abend Franz,
die Anpassungen der UserForm hat geklappt.
Die Uhrzeiten werden wunschgemäß exakt dargestellt.
Recht herzlichen Dank für Deine Mühewaltung und Geduld.
Ich habe aber noch eine allerletzte Bitte an Dich.
Wo und wie muss ich den VBA-Code ändern, um folgendes zu erreichen:
Der erste Eintrag soll erst ab Zeile 7 per VBA erfolgen.
Die Zeilen 1 bis 5 sollen für interne Eintragungen völlig frei sein.
Die Zeile 6 beinhalten weiterhin die Überschriften.
Soll bedeuten: die Zeilen 1 bis 6 dürfen in keiner Weise von dem VBA-Code
verändert, beeinflusst oder überschrieben werden.
Für mich ist es eine unlösbare Aufgabe; für Dich bestimmt nur ein „Klacks“.
(abgeleitet aus einem Spruch der ersten Mondlandung)
Bitte nenne mir Deine Adresse, damit ich unter Deinem Weihnachtsbaum ein
kleines Dankeschön legen kann. (wolfgang.loedorf@gmx.de)
Viele Grüße aus BN (Kurzfassung für Berlin Nebenstelle)
Wolfgang L.
Anzeige
AW: Adressliste für Wolfgang
10.12.2009 00:28:06
fcs
Hallo Wolfgang,
das mit dem Klacks ist so eine Sache. Speziell wenn man nicht der ursprüngliche Programmierer der VBA-Prozeduren ist. Ich denke aber ich hab alle relevanten Stellen im Code gefunden. Die aktualisierte Datei ist per E-Mail zu dir unterwegs.
Gruß
Franz
AW: Adressliste für Wolfgang
10.12.2009 20:17:42
Michi
Hallo,
wie muß ich dieses Makro noch ändern, wenn folgender Sachverhalt gegeben ist: Es soll jede Zeile von Spalte A bis R farbig markiert werden, sobald das DAtum in Spalte O kleiner gleich heute ist.
Private Sub Farbe()
Dim wks As Worksheet
Dim AnzahlWV As Long
Set wks = Worksheets("Daten")
With wks
AnzahlWV = Application.WorksheetFunction.CountIf(.Range(.Cells(2, 15), _
.Cells(.Rows.Count, 15).End(xlUp)), "
Danke für Tips
Anzeige
AW: Adressliste für Wolfgang
11.12.2009 09:36:39
fcs
Hallo Michi,
als Excel-Profi würde ich das mit bedingter Formatierung lösen.
Die entsprechende Formel für eine Zelle in Zeile 2:
=UND(ISTZAHL($O2);$O2>0;$O2

VBA-Lösung:
Private Sub Farbe()
Dim wks As Worksheet, Zeile As Long
Dim AnzahlWV As Long
Set wks = Worksheets("Daten")
Application.ScreenUpdating = False
With wks
For Zeile = 2 To .Cells(.Rows.Count, 15).End(xlUp).Row
'Wert in Spalte O (15) prüfen
If IsDate(.Cells(Zeile, 15)) Then
If .Cells(Zeile, 15) 

Die bedingte Formatierung hat den Charm, dass die vorhandene Zellformatierung nicht zerstört, sondern nur überblendet wird.
Gruß
Franz
AW: Adressliste für Wolfgang
10.12.2009 20:20:23
Michi
Mist, noch ein Nachtrag...die farbige Markierung soll wieder verschwinden, sobald ein Wert in
Spalte Q eingetragen wird..für mich als VBA-Niete wieder mal ein Jahrhundertprojekt

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige