Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

Forumthread: 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

Anzeige

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)
Anzeige
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
Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige