Clever-Excel-Forum

Normale Version: VBA - in Arbeitsmappe Schreiben ohne diese auszuwählen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Zusammen,

ich habe folgendes Problem:

bei diesem Code wird meine Sheet "Monatsname" ausgewählt - das heißt lasse ich dies aus einem anderen Sheet heraus abspielen so endet das Macro mit der Ansicht des Sheets "Monatsname". 
Ich möchte aber nach abspielen des Makros immer das Sheet sehen von woraus ich das Macro gestartet habe.  
Kann ich direkt in die Zellen des Sheets Monatsname schreiben ohne es direkt auszuwählen...  bzw gibt es einen Code welche das Makro immer in dem Sheet enden lässt wo es gestartet wurde?
 

Sheets("Monatsname").Select
    Range("A1").Select
    ActiveCell.FormulaR1C1 = "Jan-2016"
    Range("B1").Select
    ActiveCell.FormulaR1C1 = "Januar bis Januar 2016"




Vielen Dank für eure Hilfe
Hallo Sebastian,

so:

Code:
Sheets("Monatsname").Range("A1").Value = "Jan-2016"

Sheets("Monatsname").Range("B1").Value = "Januar bis Januar 2016"

kannst du in das benannte Blatt schreiben, ohne es auszuwählen.

Oder auch so:

Code:
With Sheets("Monatsname")
 .Range("A1").Value = "Jan-2016"
 .Range("B1").Value = "Januar bis Januar 2016"
End With

Das eignet sich besser, wenn viele Zeilen im Code sich auf das eine Blatt beziehen sollen.
Alle Objekte mit einem Punkt vorangestellt beziehen sich dann auf das Blatt in der With Zeile. In diesem fall die Range Objekte.

Du kannst aber auch andere blätter auswählen und am Ende zurück zum Ursprünglichen Blatt gelangen, wennn Du am Anfang den namen der Aktiven tabelle in eine Variable schreibst.
Oder generell die im spiel befindlichen Tabellen definierst, z.B:

Code:
Sub test()
 Dim wksQuelle As Worksheet
 Dim wksZiel As Worksheet
 Set wksQuelle = Sheets("Tabelle1")
 Set wksZiel = Sheets("Tabelle2")
 
 wksZiel.Select
 wksQuelle.Select
End Sub


Und auf die gleiche Art geht es auch zwischen Arbeitsmappen. Dann kommt noch der Name der Mappe hinzu.
Hallo atilla.  
Vielen Dank für die ausführliche Antwort und dass aufzeigen der unterschiedlichen Möglichkeiten. Es funktioniert!

Das hilft ungemein weiter im Lernprozess mit dem VBA Thema. Viele Dinge versuche ich über den Macro Recorder nachzuvollziehen
aber bei einigen Dingen komme ich dann doch an die Grenzen Smile