1.9k Aufrufe
Gefragt in Tabellenkalkulation von nero022 Mitglied (179 Punkte)
Hallo erst ein mal !! habe da mal wieder eine Frage an euch...

ist es Möglich die Unten stehenden Makro zu erweitern so das ich
bis auf 1000 ( Sub Tabelle1A1000() komme...?? ohne das ich jedes
makro von hand eingeben muß...?
der erste wert ändert sich immer um 1 mehr
z.b Sub Tabelle1A501()
der ander ändert sich um 9 zellen
z..b Range("FPH1").Select

das wären jetzt die weter für das nächste makro...



Sub Tabelle1A498()
Sheets("Tabelle2").Select
Range("FOG1").Select
End Sub


Sub Tabelle1A499()
Sheets("Tabelle2").Select
Range("FOP1").Select
End Sub


Sub Tabelle1A500()
Sheets("Tabelle2").Select
Range("FOY1").Select
End Sub


Danke euch schon mal für eure hilfe !!!!!!!
gruß nero

7 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Nero,

brauchst du wirklich so viele Makros?

Hier mal eine andere Möglichkeit als Vorschlag:

Sub springen()
Dim Eingabe As String
Dim Zahl As Long

Eingabe = InputBox("Bitte geben Sie eine Zahl zwischen 1 und 1000 ein!", "Eingabe")

'Abbruch, wenn keine Eingabe erfolgt
If Eingabe = "" Then
MsgBox "Abbruch - leere Eingabe", vbOKOnly, "Abbruch"
Exit Sub
End If

'Eingabe in Zahl umwandeln
Zahl = CDbl(Eingabe)

'Abbruch, wenn Zahl nicht im gültigen Bereich liegt
If Zahl < 1 Or Zahl > 1000 Then
MsgBox "Die eingegebene Zahl liegt nicht zwischen 1 und 1000 - Abbruch", vbOKOnly, "Abbruch"
Exit Sub
End If

With ThisWorkbook.Worksheets("Tabelle2")
.Select
.Cells(1, Zahl * 9 - 29).Select
End With

End Sub


Ansonsten erkläre mal etwas genauer, was der Sinn der vielen Makros sein soll.

Gruß

M.O.
0 Punkte
Beantwortet von nero022 Mitglied (179 Punkte)
Hallo M.O. !!!

erst ein mal danke für das makro von dir,habe es getestet und es geht wunderbar !!!!!!

ich denke ich werde es auch mit deinem Makro versuchen !!!!

mal zu erleuterung warum ich soviele makros brauche..... ich habe mir eine materialliste erstellt
wo in Tabelle1 Spalte A Blockpfeile hinnterlegt sind in jeder spalte von A4:A1000
die dann wenn ich sie anklicke mich zu der Zelle in Tabelle2 führen,wo ich dan meine werte
eintragen kann die zu der Zeile in Tabelle1 gehören.

Diese Liste habe ich schon bis Zeile A501 erstellt und wollte sie nun bis auf A1000 erweitern !!
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Nero,

freut mich, dass das Makro so klappt, wie du es dir vorstellst.

Aber ich hätte da noch eine Verbesserung:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Not Intersect(Target, Range("A1:A1000")) Is Nothing Then
With ThisWorkbook.Worksheets("Tabelle2")
.Select
.Cells(1, Target.Row * 9 - 29).Select
End With
End If

End Sub


Kopiere das Makro in das VBA-Projekt deiner Tabelle 1. Machst du jetzt in Spalte A1 bis A1000 einen Doppelklick, so springst du auf Tabelle 2 - ohne Blockpfeile, ohne Eingabe etc. ;-).

Gruß

M.O.
0 Punkte
Beantwortet von nero022 Mitglied (179 Punkte)
Wow !!!!
super ich dannke dir !!!!

dan werde ich mich mal an die arbeit machen und die ganzen Blockpfeile löschen :)

noch mals danke M.O.

Lg.nero
0 Punkte
Beantwortet von nero022 Mitglied (179 Punkte)
dan werde ich mich mal an die arbeit machen und die ganzen Blockpfeile löschen :)

ging doch schnell..... ;) alle auf einmal löschen...
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Nero,

danke für die Rückmeldung.

Um das Makro "perfekt" zu machen, ändere

If Not Intersect(Target, Range("A1:A1000")) Is Nothing Then

in
If Not Intersect(Target, Range("A4:A1000")) Is Nothing Then


da ich
von A4:A1000
überlesen hatte.

Gruß

M.O.
0 Punkte
Beantwortet von nero022 Mitglied (179 Punkte)
ah ok Danke dir nochmals !!
...