Anzeige
Archiv - Navigation
452to456
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
452to456
452to456
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wenn Ausgangszelle <93, dann Blatt 93 und such Nr.

Wenn Ausgangszelle <93, dann Blatt 93 und such Nr.
12.07.2004 18:55:27
thomas
Hallo Leute,
Mit untenstehendem Makro (von Luschi et al.) kann ich die Abstammungslinien meiner Taubenzucht einfach verfolgen. Jede Taube hat einen Ring mit einer Nummer nach folgender Struktur: Jahrgang / Nummer. Für jeden Jahrgang habe ich ein eigenes Blatt (Beginn: 93).
Von der Ausgangszelle in Spalte C oder I (Jahrgang von Vater oder Mutter) springt das Makro auf das richtige Blatt und findet dann auch das richtige Nummero, das sich immer in der Zelle rechts neben dem Jahrgang befindet. Soweit alles perfekt.
Derzeit gibt das Makro aber noch einen Fehler raus, wenn sich in der Ausgangszelle ein Jahrgang kleiner als '93 befindet. Zu den kleiner als '93 Jahrgängen existieren nämlich keine eigenen Blätter, diese sind alle im Blatt '93 integriert.
Perfekt wäre nun, wenn das Makro für den Fall, dass sich in der Ausgangszelle ein String kleiner als '93 befindet es auch auf das 93er Blatt springt und dort wieder die richtige Nummer findet, die sich immer in der Spalte rechts neben dem Jahrgang befindet (der Jahrgang ist eigentlich belanglos, da es vor 93 keine doppelten Nummern gibt und also Eineindeutigkeit über die Nummer gegeben ist.)
Alles klar?
Danke für allfällige Hilfe!
thomas

Sub Seitenwahl()
'Tastenkombination: Strg a
Dim iWks As Integer, r1 As Range, r2 As Range
Dim sp As Integer, ro As Integer, s1 As String, s2 As String
sp = ActiveCell.Column
If sp = 3 Or sp = 9 Then
ro = ActiveCell.Row
s1 = ActiveCell.Value
'Zellinhalt der rechten Nachbarzelle
s2 = Range(Cells(ro, sp + 1), Cells(ro, sp + 1)).Value
For iWks = 1 To Worksheets.Count
If Worksheets(iWks).Name = s1 Then
Worksheets(iWks).Activate
Exit For
End If
Next iWks
Else
MsgBox "Zelle in falscher Spalte aktiv"
Exit Sub
End If
's2 suchen
Set r1 = Worksheets(s1).Range("B1:B300")
For Each r2 In r1
If r2.Value = s2 Then
r2.Activate
Exit For
End If
Next r2
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn Ausgangszelle <93, dann Blatt 93 und such Nr.
Luschi
Hallo Thomas,
das geht dann so:

Sub Seitenwahl()
'Tastenkombination: Strg a
Dim iWks As Integer, r1 As Range, r2 As Range
Dim sp As Integer, ro As Integer, s1 As String, s2 As String
sp = ActiveCell.Column
If sp = 3 Or sp = 9 Then
ro = ActiveCell.Row
s1 = ActiveCell.Value
'Zellinhalt der rechten Nachbarzelle
s2 = Range(Cells(ro, sp + 1), Cells(ro, sp + 1)).Value
'neu - neu - neu
If Val(s1) < 93 Then
s1="93"
End If
' ende neu - ende neu - ende neu
For iWks = 1 To Worksheets.Count
If Worksheets(iWks).Name = s1 Then
Worksheets(iWks).Activate
Exit For
End If
Next iWks
Else
MsgBox "Zelle in falscher Spalte aktiv"
Exit Sub
End If
's2 suchen
Set r1 = Worksheets(s1).Range("B1:B300")
For Each r2 In r1
If r2.Value = s2 Then
r2.Activate
Exit For
End If
Next r2
End Sub

Gruß von luschi
aus klein-paris
Anzeige
Edel sei der Mensch, hilfreich und gut.
Goethe
:-)
Grüße nach Leibzig
AW: Edel sei der Mensch, hilfreich und gut.
Luschi
Hallo Mr. Goethe,
weil der gesegnete Herr "Goethe" wußte, daß "reich" besser ist als "hilfreich", deshalb hat er mit "Schiller" nicht getauscht.
Gruß von Luschi
aus klein-paris
*g*Hi Luschi
ExceL
werde mein pseudo auflösen
ich bins ExceL
(chris-ka)
Vielen Dank Luschi
12.07.2004 20:22:25
thomas
Hallo Luschi,
vielen Dank für deine Hilfe; irgendwie klappt die Erweiterung noch nicht ganz immer, springt fast immer auf Blatt 93. Aber vielleicht krieg ich's jetzt selbst hin; ich versuche deinen Code zu kapieren, ist ziemlich komplex für mich.
Beste Grüsse und vielen, vielen Dank.
thomas
AW: Vielen Dank Luschi
12.07.2004 20:47:07
thomas
Hallo Luschi,
da ich den Jahrgang immer nur zweistellig habe; also z.B. 00, 01, 93
konnte ich mit folgender Zeile das Problem, dass er fast immer zu 93 gesprungen ist beheben.
If Val(s1) 80 Then
Jetzt gibt er mir manchmal noch einen Error, wenn er eine Nummer nicht findet. Aber das ist nur Kosmetik. Für meine Zwecke funktionierts jetzt genügend.
Hab Dank!
thomas
Anzeige
noch 1 kleine Änderung
Luschi
Hallo Thomas,
hier noch 1 kleine Änderung mit ein paar zusätzlichen
Erklärungen:

Sub Seitenwahl()
'Tastenkombination: Strg a
Dim iWks As Integer, r1 As Range, r2 As Range
Dim sp As Integer, ro As Integer, s1 As String, s2 As String
'Tabellenspalte der aktiven Zelle
sp = ActiveCell.Column
If sp = 3 Or sp = 9 Then
'Tabellenzeile der aktiven Zelle
ro = ActiveCell.Row
'Inhalt der aktiven Zelle
s1 = ActiveCell.Value
'Inhalt der rechten Nachbarzelle von der aktiven Zelle
s2 = Range(Cells(ro, sp + 1), Cells(ro, sp + 1)).Value
'neu - neu - neu: Val wandelt den Text in eine Zahl um
'ab 2080 muß hier eine erneute Fehlerkorrektur erfolgen oder Du schreibst
'das Jahr dann vierstellig
If Val(s1) >=80 And Val(s1) < 93 Then
s1="93"
End If
' ende neu - ende neu - ende neu
For iWks = 1 To Worksheets.Count
If Worksheets(iWks).Name = s1 Then
Worksheets(iWks).Activate
Exit For
End If
Next iWks
Else
MsgBox "Zelle in falscher Spalte aktiv"
Exit Sub
End If
's2 suchen auf der Tabellenseite, die den Namen hat, der in
's1 weiter oben gespeichert wurde
'die For-Each-Schleife durchläuft alle Zellen von B1 bis B300
'r2 ist dabei die Laufvariabel und r1 der Bereich, der durchlaufen wird
Set r1 = Worksheets(s1).Range("B1:B300")
For Each r2 In r1
'prüfen ob die gerade ausgewählte Zelle den Ihnhalt von s2 hat
If r2.Value = s2 Then
r2.Activate
Exit For
End If
Next r2
End Sub

Gruß von Luschi
aus klein-paris
Anzeige
Vielen vielen Dank Luschi; hab was gelernt!!!
13.07.2004 12:54:01
thomas
Hallo Luschi,
vielen Dank; konnte mit deinen Kommentaren nachvollziehen, was der Code macht und so etwas lernen.
Das hat mir sehr geholfen.
Danke auch für die erneute Erweiterung
Vielen Dank für Alles!
thomas
Auch Auswahl <93 funktioniert!!! vielen Dank o.T.
13.07.2004 14:10:05
thomas

329 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige