Ungefähr in der Art:
ActiveWindow.SelectedSheets.Visible = False
Sheets("Angebotserfassung").Select
Range(Cells(0, -1).Select
Doch diese Code-Zeile nimmt Excel nicht an!
Ungefähr in der Art:
ActiveWindow.SelectedSheets.Visible = False
Sheets("Angebotserfassung").Select
Range(Cells(0, -1).Select
Doch diese Code-Zeile nimmt Excel nicht an!
probiere es mal mit:
Public Sub Test()
ActiveSheet.Visible = False
Worksheets("Angebotserfassung").Activate
ActiveSheet.Range("A6").Select
End Sub
MfG
Robert
Ich lasse aus einem Tabellenblatt("Test") durch Private Sub_Change bei Änderungen in Spalte C ein Makro auslösen, das wie oben beschrieben ein Tabellenblatt("Angebotserfassung") einblendet.
Da dieses Makro in allen Zellen der Spalte C ausgelöst werden kann, möchte ich, sobald ich in dem eingeblendetem Tabellenblatt("Angebotserfassung") das "Abbrechen-Makro" laufen lasse, in die jeweilige Zelle in Spalte C auf dem Tabellenblatt("Test") springen, aus dem die Private Sub_Change gestartet wurde.
Ich hoffe, jetzt wird´s deutlicher.
Erstens:
Weiß nicht wie das mit dem Rang(Cells(....)) funktioniert!
Würd lieber:
ActiveCell.Offset(0, -1).Select
nehmen!
zweitens: Im Abbrechen Macro musst Du als erstes wieder das Tabellenblatt einblenden bevor Du darauf zugreifst!
sheets("Test").visible = true
Du solltest in der Change Funktion eine Variable übergeben, die die Zellkoordinaten enthält aus der die Routine gestartet wurde!
....Change (x as integer,y as integer)
y = ActiveCell.Row
x = activecell.column
So kannst Du nachher diese Zelle wieder aktivieren!
hoffe es hilft weiter
Wie genau müßte das aussehen?
Danke schonmal für deine Hilfe.
Sub Abbruchmacro (Variable1, Variable2)
Sie müssen durch komma getrennt sein!
In der sub... Cange frägst Du Spalte und Reihe ab und legst Sie auf die Variablen und gibst sie dann an das Abbruchmacro weiter
wenn Du es aufrufst
variable1 = ActiveCell.Row
Variable2 = activecell.column
Call Abbruchmacro (Variable1, Variable2)
Im Abbruchmacro dann das Alte TB aktivieren und die Alte Zelle markieren
Cells(Variable1, Variable2).select
Viel Spass damit!
Meine Codes lauten so:
In Tabelle("Angebotserfassung") das:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 And [O16] = "X" Then
Target.Offset(0, 1).Value = Target.Offset(0, 9).Value
Target.Offset(0, 6).Value = Target.Offset(0, 10).Value
Target.Offset(0, 5).Value = Target.Offset(0, 11).Value
Range("D15").Value = Target.Offset(0, 0).Value
Sheets("Match2").Visible = True
Sheets("Match2").Select
In Tabelle("Match") folgendes Makro
Sub zurück()
ActiveWindow.SelectedSheets.Visible = False
Sheets("Angebotserfassung").Select
End Sub
Wäre sehr nett, wenn du mir diese Variable-Klamotte kurz einbauen könntest.
y= ActiveCell.Row
x= activecell.column
Target.Offset(0, 1).Value = Target.Offset(0, 9).Value
Target.Offset(0, 6).Value = Target.Offset(0, 10).Value
Target.Offset(0, 5).Value = Target.Offset(0, 11).Value
Range("D15").Value = Target.Offset(0, 0).Value
Sheets("Match2").Visible = True
Sheets("Match2").Select
Hier muss jetzt ein case oder If rein, das entscheidet, ob abgebrochen wird oder nicht!
Wenn ja dann:
call Match.zurueck(y,x)
In Tabelle("Match") folgendes Makro
Sub zurueck(y,x)
ActiveWindow.SelectedSheets.Visible = False
Sheets("Match2").Select
Sheets("Angebotserfassung").Select
Cells(y,x).select
End Sub
SDo irgendwie muss es laufen!
Is schwierig sich vorzustellen was Du da so machst und Willst,
hoffe ich konnte helfen!