Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1536to1540
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

Ansprechen von Application in einem anderen Blatt

Ansprechen von Application in einem anderen Blatt
24.01.2017 07:46:34
helmut.em

Guten Morgen,
wie ich ich von einem Tabellenblatt ("Tabelle1") aus einen Application-Befehl im Blatt ("Tabelle2") ansprechen?
Befehl etwa wie:
If Not Application.Intersect(Selection, Range("A1")) Is Nothing Then MsgBox ("Der Range gehört dazu.")

"A1" wird mit einer Schleife variiert.
Wenn der Commandbutton im Blatt 2 ist, funktioniert es, er muss aber im anderen Blatt stehen. Ich habe vorher Sheets("Tabelle2").Activate geschrieben, das hilft jedoch nicht.
Danke und FG
Helmut

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Wenn Du
24.01.2017 08:27:44
RPP63
den CB anklickst, ist der aktiv, heißt ist er die Selection, Helmut.
Vielleicht hilft .TakeFocusOnClick = False in den Eigenschaften.
Besser wäre es aber, Du würdest mal erklären, was Du eigentlich erreichen willst.
Gerne iVm einer Beispieldatei.
Gruß Ralf
AW: Wenn Du
24.01.2017 12:05:33
helmut.em
Danke erst mal. Ich erkläre ausführlich, was passieren muss:
Im Blatt basic sind beliebige komplette Spalten markiert (durch Klick auf den Spaltenbezeichner oben).
Im Blatt start ist der Commandbutton. Er soll die Nummern aller markierten Spalten im Blatt start in Zeile 1 ab Spalte J schreiben.
Bisher hatte der Button folgenden Code:
Private Sub CommandButton2_Click()
a = 10
Sheets("basic").Activate
For s = 1 To 100
If Not Application.Intersect(Selection, Cells(2, s)) Is Nothing Then
Sheets("start").Cells(1, a) = s
a = a + 1
End If
Next s
End Sub
So funktioniert es nicht. Danke im Voraus für eine Lösung, muss nicht Intersect sein.
FG Helmut
Anzeige
AW: Wenn Du
24.01.2017 12:12:09
RPP63
Moin Helmut!
Wenn Du der Meinung bist, dass ich mir eine Datei nachbaue, irrst Du.
Lies Dir beide bisher erhaltenen Antworten nochmal durch.
Gruß Ralf
AW: Wenn Du
24.01.2017 14:38:57
helmut.em
Hallo RPP63,
du wolltest doch eine ausführliche Beschreibung.
Ich erwarte keinen fertigen Code, nur einen Hinweis, was bei mir falsch ist. Konkret: Warum funktioniert der Application.Intersect-Befehl im anderen Blatt nicht, wenn ich dieses vorher aktiviere, und wie komme ich da raus?
FG H
AW: Ansprechen von Application in einem anderen Blatt
24.01.2017 08:37:36
EtoPHG
Hallo Helmut,
Du würfelst da ein paar Objekte ziemlich durcheinander:
Application: Ist die gesamte Excel-Anwendung (Excel-Instanz)
Selection: Bezieht sich auf das ausgewählte Objekt im aktiven Fenster der Application. D.h. ein nicht aktives Fenster(Blatt) kennt kein Selection-Objekt.
Range: Eine Zelle, Zeile, Spalte oder eine Auswahl davon. Ohne einen vorangestelltes Objekt (z.B. Worksheets(2).Range("A1") ) bezieht sich die Range auf das aktive Blatt.
Intersect: Die Schnittmenge zweier Range-Objekte. Beide müssen zum selben Worksheet gehören, d.h. Es kann keine Schnittmengen zwischen Range in verschiedenen Tabellenblätter geben.
Tipp: Mach Dich mithilfe der eingebauten VBA-Hilfe vertrauter mit Objekten, Methoden und Ereignissen. Platziere den Cursor auf einen Schlüsselwort (wie z.B. Selection) und drück die F1 Taste im VBA-Editor.
Gruess Hansueli
Anzeige
AW: Ansprechen von Application in einem anderen Blatt
24.01.2017 15:59:33
Werner
Hallo Helmut,
versuch mal:
Private Sub CommandButton1_Click()
a = 10
Application.ScreenUpdating = False
Sheets("basic").Activate
For s = 1 To 100
With Sheets("basic")
If Not Application.Intersect(Selection, .Cells(2, s)) Is Nothing Then
Sheets("start").Cells(1, a) = s
a = a + 1
End If
End With
Next s
Sheets("start").Activate
Application.ScreenUpdating = True
End Sub
CommandButton ist auf dem Blatt "start" Selection im Blatt "basic"
Gruß Werner
AW: Ansprechen von Application in einem anderen Blatt
25.01.2017 12:21:34
helmut.em
Danke Werner, alles roger.
Der Unterschied war also das Application.ScreenUpdating.
Was dazu gelernt!
Anzeige
AW: nein.....
25.01.2017 12:29:45
Werner
Hallo Helmut,
das schaltet nur die Bildschirmaktualisierung aus, sprich du siehst das zwischenzeitliche Wechseln auf das Blatt "basic" nicht.
Der wichtige Unterschied zu deiner Version ist das With - End With sowie der dann erforderliche Punkt vor .Cells(2, s))
Gruß Werner
AW: nein.....
29.01.2017 09:01:35
helmut.em
sorry, ich reagiere spät, aber ich bin erst jetzt dazu gekommen, weiter zu machen. ich danke allen für die hilfe.
gruß helmut
AW: Danke für die Rückmeldung und zu. o.w.T.
29.01.2017 19:34:07
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige