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

VBA Problem Sprungfunktion

VBA Problem Sprungfunktion
Steffen
Hallo
Ich habe ein Problem mit einem Makro.
Ich benötige eine Sprungfunktion um von einer Zelle (automatisch nach erfolgter Eingabe) in eine andere Zelle in einer anderen "Mappe" zu springen. Ich hab das mit folgendem Makro gelöst.
(Frage geht unten weiter)
'Sprungbefehl 1a Anfang'
If (Target.Address = "$J$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E11").Activate
End If
If (Target.Address = "$K$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E17").Activate
End If
If (Target.Address = "$L$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E23").Activate
End If
If (Target.Address = "$M$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E29").Activate
End If
If (Target.Address = "$N$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E35").Activate
End If
If (Target.Address = "$O$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E41").Activate
End If
If (Target.Address = "$P$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E47").Activate
End If
If (Target.Address = "$Q$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E53").Activate
End If
If (Target.Address = "$R$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E59").Activate
End If
If (Target.Address = "$S$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E65").Activate
End If
If (Target.Address = "$T$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E71").Activate
End If
If (Target.Address = "$U$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E77").Activate
End If
If (Target.Address = "$V$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E83").Activate
End If
If (Target.Address = "$W$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E89").Activate
End If
If (Target.Address = "$X$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E95").Activate
End If
If (Target.Address = "$Y$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E101").Activate
End If
If (Target.Address = "$Z$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E107").Activate
End If
If (Target.Address = "$AA$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E113").Activate
End If
If (Target.Address = "$AB$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E119").Activate
End If
If (Target.Address = "$AC$12" And Target.Value < 21) Then
Tabelle4.Select
Tabelle4.Range("E125").Activate
End If
'Sprungbefehl 1a Ende'
Die Startfelder für die 20 Sprungbefehle befinden sich alle in der selben Zeile in den Spalte J-AC
Die Zielfelder in der anderen Mappe befinden sich alle in Spalte E mit jeweils 6 Zeilen Abstand.
Das Makro ansich funktioniert so ganz gut, aber nun mein Problem:
Ich benötige diesen Sprungbefehl insgesamt 63 Mal. Wenn ich das 63 Mal als Makro schreibe wird das Makro zu groß und VBA kann es nicht mehr kompilieren.
Kann man das Makro irgendwie auf 3 Teile a 21 Sprungbefehle Aufsplitten oder kann man das irgendwie als Schleife Porgrammieren? Die Start und Zieladresse ist halt bei jedem der 63 durchläufe eine Andere (aber jedes Mal Start in Spalten J-AC,gleich Zeile und Ziel in Spalte E mit 6 Zielen Abstand).
Kann mir hier irgendwer helfen?
Schöne Grüße
Horst

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA Problem Sprungfunktion
10.12.2009 16:24:21
Rudi
Hallo,
das macht das gleiche wie dein Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("J12:AC12")) Is Nothing And Target 

Gruß
Rudi
AW: VBA Problem Sprungfunktion
10.12.2009 17:15:17
Steffen
Hallo Rudi
Danke mal vorerst für die Hilfe, aber als VBA-Dummie brauch ich da noch eine kleine Erläuterung.
Ich nehme an die Zeile
.Cells(Target.Column * 6 - 49, 5).Select
ist die Zieladresse. Ich bekomme aber den gedanklichen Zusammenhang zwischen Deiner Schreibweise und meinen Feldern E11 bis E125 nicht zusammengereimt.
Kannst Du mir das bitte erläutern?
Horst
Anzeige
AW: VBA Problem Sprungfunktion
10.12.2009 17:30:09
Rudi
Hallo,
ist eigentlich ganz einfach
Syntax: Cells(Zeile, Spalte)
Da du immer um 6 Zeilen verschiebst, handelt es sich um eine lineare Funktion. Somit kann man die Zeile errechnen.
Änderung in J (Target.Column=10): =10*6-49=11. Ergibt Cells(11, 5) entspricht Range("E11")
Änderung in K (Target.Column=11): =11*6-49=17. Ergibt Cells(17, 5) entspricht Range("E17")
etc.
Man könnte auch Range("E" & Target.Column * 6 - 49).Select schreiben.
Gruß
Rudi
AW: VBA Problem Sprungfunktion
10.12.2009 18:26:39
Steffen
Hallo Rudi
Vielen Dank, das ist die Lösung, jetzt bekomm ichs auch mit der Erweiterung auf meine 63 Fälle hin.
Schöne Grüße
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige