Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1304to1308
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

Geburtstag

Geburtstag
15.03.2013 22:57:08
Mario
Hallo Leute,
ich brauch eure Hilfe.
Ich habe eine Datei wo in einer Tabelle die ganzen Adressen und Geburtstage stehen,
die halben und runden Geburtstage kopiert er mir ein eine andere Tabelle, ich brauche noch das er mir alle Geburtstage ab den 80. in der Tabelle kopiert
https://www.herber.de/bbs/user/84398.xls
Ich hoffe ihr könnt mir Helfen
mfg mario

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Geburtstag
16.03.2013 05:44:10
schauan
Hallo Mario,
Wenn Du Dir den code für die anderen Fälle mal anschaust und nach der Stelle suchst, wo es um die Bedingung zum Kopieren geht, ist das nicht schwer.
Das ist diese Zeile:
If Sheets(4).Cells(i, 4).Value Mod 10 = 0 Then
Das mit dem Mod ist nun nicht gerade Anfängerwissen, aber die 10 und im anderen Makro die 5 passt gedanklich zu den runden und halben Geburtstagen.
Kopiere ein Makro, nenne es z.B. alte_sachen und ändere die oben genannte Zeile in
If Sheets(4).Cells(i, 4).Value >= 80 Then
Dann weist Du es Deinem Button zu.
 Hoffe, geholfen zu haben. Grüße, André aus G in T  (xls 97-2013)

Anzeige
AW: Geburtstag
16.03.2013 09:03:39
Mario
Hallo andere,
danke für deine Hilfe. Ich brauch das ab 80,81,82.......usw und das bekomme ich mich hin, viel gleich kannst mir da weiter helfen.
Gus mario

AW: Geburtstag
16.03.2013 10:28:10
JoWE
Hallo Mario,
vllt. so:
Sub achtzig_und_mehr_Sache()
Dim i As Long, x As Long
For i = 5 To 1000000
On Error Resume Next
If Sheets(4).Cells(i, 4).Value = "" Then Exit For
If Sheets(4).Cells(i, 4).Value >= 80 Then
For x = 1 To 100000
If Sheets(2).Cells(x, 4).Value = "" Then
Sheets(2).Cells(x, 1).Value = Sheets(4).Cells(i, 1).Value
Sheets(2).Cells(x, 2).Value = Sheets(4).Cells(i, 2).Value
Sheets(2).Cells(x, 3).Value = Sheets(4).Cells(i, 3).Value
Sheets(2).Cells(x, 4).Value = Sheets(4).Cells(i, 4).Value
Sheets(2).Cells(x, 5).Value = Sheets(4).Cells(i, 8).Value
Sheets(2).Cells(x, 6).Value = Sheets(4).Cells(i, 13).Value
Sheets(2).Cells(x, 7).Value = Sheets(4).Cells(i, 14).Value
Sheets(2).Cells(x, 8).Value = Sheets(4).Cells(i, 15).Value
Sheets(2).Cells(x, 9).Value = Sheets(4).Cells(i, 16).Value
Exit For
End If
Next x
End If
Next i
End Sub

Gruß
Jochen

Anzeige
AW: Geburtstag
16.03.2013 10:39:36
schauan
Hallo Mario,
was bekommst Du konkret nicht hin? Weißt Du nicht, wo das Makro steht?
Öffne die Datei, drücke ALT+F11 und Du kommst in den VBA-Editor.
Links siehst Du einen Projektexplorer, dort ist der Name Deiner Datei und dort klickst Du drauf.
Dann siehst Du Tabellen, eventuell Module und DieseArbeitsmappe. Dein code steht in DieseArbeitsmappe.
Klicke bzw. doppelklicke darauf, und im rechten Fenster siehst Du den code.
Eines der Makros geht von
Public Sub runde_sache()
bis
End Sub
Diesen Bereich kopierst Du und fügst ihn am Ende ein.
Dann führst Du die Änderungen durch, wie beschrieben.
Anschließend tust Du dem Button das neue Makro zuweisen.
 Hoffe, geholfen zu haben. Grüße, André aus G in T  (xls 97-2013)

Anzeige
Bedenken
16.03.2013 10:30:38
Erich
Hi Mario,
zunächst mal einen Gruß in die Wackenbergstraße!
In deiner Beispielmappe stehen reale Daten. Die solltest du vermutlich nicht im Internet veröffentlichen.
Deine Mit-Laubenpieper wären wohl nicht begeistert, ihre Adressen, Geburtsdaten, Telefonnummern so verbreitet zu sehen.
Ich kann dir nur empfehlen, Hans W. Herber per Mail zu bitten, die Mappe vom Forumsserver zu löschen.
Deine Daten befinden sich - freundlich ausgedrückt - in keinem guten Zustand:
Die Spaltenüberschriften sollten direkt über den Spaltendaten stehen )(in der Zeile über der ersten Datenzeile).
Zahlen und Texte stehen in einer Spalte durcheinander. Das betrifft die Telefonnummer und die Parzelle.
Beim Geburtsdatum gibt es auch einen Text: 00.00.0000 beim Herrn Mustermann. 00.00.0000 ist kein Datum, sondern Text,
und das stört mitunter (siehe Zeile 153 in Blatt "Geburtstag").
Wenn kein Grburtstag bekannt ist, solltest du auch kein Alter berechnen lassen. Alter 113 ist Unfug.
Bei Frau Radke muss man von einer sehr vorausschauenden Familienplaung ausgehen:
Sie wird am 17.01.2028 geboren werden...
Nun zu deiner Frage:
Wenn du deiner Liste der runden und/oder halben Geburtstage die mit mehr als 80 Jahren hinzufügst,
werden die 80- 85- 90-Jährigen doppelt in der Liste stehen. Soll das so sein?
Geschickter könnte es sein, eine Liste all derjenigen zu erstellen, die mindestens eine der drei Bedingungen
erfüllen, etwas so:

Public Sub oldies_5_10()
Dim wksSend As Worksheet, ze As Long, zq As Long
Set wksSend = Worksheets("Tabelle versenden")
With wksSend
ze = .Cells(.Rows.Count, 4).End(xlUp).Row
End With
With Sheets("Geburtstag")
For zq = 5 To .Cells(.Rows.Count, 4).End(xlUp).Row
If Application.IsNumber(.Cells(zq, 4)) And .Cells(zq, 3).Value > 0 Then
If .Cells(zq, 4).Value >= 80 Or _
.Cells(zq, 4).Value Mod 5 = 0 Then
ze = ze + 1
wksSend.Cells(ze, 1).Resize(, 4) = .Cells(zq, 1).Resize(, 4).Value
wksSend.Cells(ze, 5) = .Cells(zq, 8).Value
wksSend.Cells(ze, 6).Resize(, 4) = .Cells(zq, 13).Resize(, 4).Value
End If
End If
Next zq
End With
End Sub
Nicht unwichtig:
Der Code gehört nicht in den Code zu "DieseArbeitsmappe", sondern in ein normales Modul.
Das gilt auch für deine Prozeduren "runde_sache()" und "halbe_sache()".
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Bedenken
16.03.2013 16:26:03
Mario
Hallo Erich,
Die Mappe sollte so nicht ins Netz(alles Veranlast)
ich habe deine Variante ausprobiert und bin begeistert, schreibt alle halben und runden sowie alle Geburtstage ab 80.
Eine kleine Frage habe ich noch könnte mann das auch gleich nach Monaten sortieren.
Gruß mario

AW: Bedenken
16.03.2013 18:08:47
Mario
Hallo Leute,
brauche noch mal eure Hilfe,
wenn ich auf den Button "user Forum anzeige gehe und im Familienname "Mustermann" eingebe bekomme und dann auf Suche gehe, bekomme ich einen Laufzeitfehler 1004, kann mir jemand Helfen (habe Office2013)
https://www.herber.de/bbs/user/84407.xlsm
gruß mario

Anzeige
AW: Geburtstag
16.03.2013 19:12:22
Mario
Hallo Erich,
Die Mappe sollte so nicht ins Netz(alles Veranlast)
ich habe deine Variante ausprobiert und bin begeistert, schreibt alle halben und runden sowie alle Geburtstage ab 80.
Eine kleine Frage habe ich noch könnte mann das auch gleich nach Monaten sortieren.
brauche noch mal deine/eure Hilfe,
wenn ich auf den Button "user Forum anzeige gehe und im Familienname "Mustermann" eingebe bekomme und dann auf Suche gehe, bekomme ich einen Laufzeitfehler 1004, kann mir jemand Helfen (habe Office2013)
https://www.herber.de/bbs/user/84407.xlsm
mfg
mario

Anzeige
Ist eine UF von FCS oder?
16.03.2013 23:43:23
FCS
Hallo Mario,
sucht denn der Code im "richtigen" Tabellenblatt?
Matze

AW: Ist eine UF von FCS oder?
17.03.2013 00:00:32
FCS
Hallo Matze
tut mir leid ist für mich zu hoch, kannst du es mir anders erklären.
grüß
mario

AW: Geburtstag
17.03.2013 00:27:49
Erich
Hi Mario,
im Code der UserForm, speziell in der Prozedur "CommandButton2_Click()", steht einfach zu oft "Activate"
oder "ActiveCell".
Aktiv kann eine Zelle nur sein, wenn auch das Blatt "Daten", zu dem sie gehört, aktiv ist.
Das ist aber hier nicht so. Aktiv ist normalerweise das Blatt "Tabelle1", von dem aus die UF gestartet wird.
Das produziert hier den Fehler 1004.
Probier mal, ob das Suchen funktioniert, wenn du die Prozedur "CommandButton2_Click()"
durch den folgenden Code ersetzt:

'   suchen gemäß Nach-/Familiennamen
Private Sub CommandButton2_Click()
Dim WkSh        As Worksheet
Dim lLetzte     As Long
Dim myRange     As Range
Dim strAddress  As String
Dim bolAbbruch  As Boolean
Me.CommandButton3.Enabled = False  ' den Änder-Button sperren
Me.CommandButton4.Enabled = False  ' den Lösch-Button sperren
Set WkSh = ThisWorkbook.Worksheets("Daten")
lLetzte = WkSh.Cells(WkSh.Rows.Count, 1).End(xlUp).Row
If lLetzte  strAddress Then
'                    myRange.Activate
FundZeile = myRange.Row          'ActiveCell.Row
GoSub Anzeigen
End If
End If
Loop While Not myRange Is Nothing And myRange.Address  strAddress
If Not bolAbbruch Then
MsgBox "Keine weiteren Datensätze gefunden.", _
48, "   Information für " & Application.UserName
FundZeile = 0
Else
MsgBox "Keinen übereinstimmenden Datensatz gefunden", _
48, "   Information für " & Application.UserName
FundZeile = 0
End If
Else
MsgBox "Keinen übereinstimmenden Datensatz gefunden", _
48, "   Information für " & Application.UserName
FundZeile = 0
With TextBox2
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
End With
End If
Me.CommandButton3.Enabled = False  ' den Änder-Button sperren
Me.CommandButton4.Enabled = False  ' den Lösch-Button sperren
Exit Sub
Anzeigen:
If FundZeile = 0 Then Exit Sub
TextBox1.Value = myRange.Offset(0, 0).Value ' Familienname
TextBox2.Value = myRange.Offset(0, 1).Value ' Vorname
TextBox3.Value = myRange.Offset(0, 2).Value ' Straßenname
TextBox4.Value = myRange.Offset(0, 3).Value ' Postleitzahl
TextBox5.Value = myRange.Offset(0, 4).Value ' Ortsname
If myRange.Offset(0, 5).Value  "" Then
If IsDate(myRange.Offset(0, 5).Value) Then
TextBox6.Value = _
Format(myRange.Offset(0, 5).Value, "dd.mm.yyyy ddd") ' Geburtstag
ElseIf IsDate(Left(myRange.Offset(0, 5).Value, _
Len(myRange.Offset(0, 5).Value) - 3)) Then
TextBox6.Value = _
Format(myRange.Offset(0, 5).Value, "dd.mm.yyyy ddd") ' Geburtstag
End If
End If
TextBox7.Value = myRange.Offset(0, 6).Value ' Telefon
TextBox8.Value = myRange.Offset(0, 7).Value ' Parzelle
CommandButton3.Enabled = True  ' den Änder-Button freigeben
CommandButton4.Enabled = True  ' den Lösch-Button freigeben
Return
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
P.S. zur Sortierung nach Monaten: Kann auch das Blatt "Daten" schon so sortiert werden?
Soll das Sortieren in VBA erfolgen oder wäre das besser mit einer Formel und dem Excel-Sort?

Anzeige
AW: Geburtstag
17.03.2013 00:45:18
Mario
Hallo Kamp-Lintfort von Erich,
ich habe deine Variante ausprobiert funktioniert super Danke,
kannst du mir noch einmal Helfen und zwar bei den Geburtstagen
kann mann die Geburtstage nach Monaten sortieren.
Es wäre schön wenn du mir noch ein mal Helfen könntest
gruß
mario

AW: Geburtstag
17.03.2013 09:56:26
Hajo_Zi
Hallo Mario,
mal eine Lösung ohne VBA.
Sortieren nach Monat und Tag
das Datum steht in Spalte A
Sortieren tust Du nur nach einer Hilfsspalte; darin steht:
=MONAT(A1)+TAG(A1)/100

Anzeige
AW: Geburtstag
17.03.2013 12:13:53
Mario
Hallo,vielen Dank für die Hilfe
mit der Formel funktioniert das nicht schreibt zwar Monat und Tage aber sortiert nicht
https://www.herber.de/bbs/user/84407.xlsm
gruß
mario

AW: Geburtstag
17.03.2013 12:18:56
Hajo_Zi
Hallo Mario,
ich sehe keine liste die Sortiert werden soll und ich bekomme auch Fehler bei Aktivierung von Makro.
Ich kann Dir da dann nicht weiter helfen.
Gruß Hajo

AW: Geburtstag
17.03.2013 12:44:35
Mario
Hallo
schau dir diese Mappe an unter Tabelle versenden findest du die Daten
https://www.herber.de/bbs/user/84412.xls
wenn der fehler noch einmal auftritt bitte Ignorieren, Mappe noch einmal starten und dann kommt keine meldung (bei mir tritt der fehler nicht auf)
gruß
mario
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige