Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
880to884
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
880to884
880to884
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro Zellbezug

Makro Zellbezug
30.06.2007 14:08:00
Thomas
Hallo zusammen,
ich hoffe ihr könnt mir bei meinem Problem helfen.
Folgendes:
Wenn man in Visual Basic ein Makro schreibt, legt man ja die Zellen, auf welches es
bezogen ist, fest. Aber wenn ich nun in Excel oberhalb des Bezuges Zellen hinzufüge
dann stimmt ja die Zelladressierung meines Makros nicht mehr. Gibt es da die mögl.
dies zu berücksichtigen?
Und noch was. Worin liegt in Visual Basic der Unterschied zwischen "DieseArbeitsmappe",
"Tabellenblatt" und "Modul" ?

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

Betreff
Datum
Anwender
Anzeige
AW: Makro Zellbezug
30.06.2007 14:30:00
chris
Also zu 1 kann ich dir helfen.
Du könntest zum beispiel der zelle in dem Exceltabellenblatt einen Namen geben.
Dazu markierst du den zellbereich ... B3:c4 und dann trägst du in das feld links über Zelle A1 einen namen ein zum beispiel mein_breich
und dann kannst du VIA VBA auf den bereich zugreifen mit
Range("mein_breich")
hoffe das Hilft dir
lasse aber die frage noch offen.

AW: Makro Zellbezug
30.06.2007 14:40:00
Chris
Servus,
zu 2.:
Grundsätzlich können überall Makros stehen.
In Modulen stehen zumeist Functions und Makros, die sich darauf beziehen.
In DieseArbeitsmappe kommen i.d.R. solche Dinge wie Workbook_Open, Workbook_BeforeClose, die sich auf die gesamte Arbeitsmappe beziehen.
Und in den Tabellenmodulen stehen normalerweise die Makros, die sich auf die Tabelle beziehen, muss aber nicht, hängt von deiner Programmierweise ab.
Range("xy") geht nur im Tabellenmodul, Sheets("xy").Range("xy") dagegen auch in anderen
zu 1. das geht natürlich bedingt auch, aber dann muss dein Makro so aufgebaut sein, dass die bezüge variabel gestaltet werden können, als Integer oder sonstige deklarierte Variablen
z.B.:

Sub variable()
Dim i As Integer
For i = 2 To 100 Step 1
Cells(i, 1).Value = "X"
Next i
End Sub


kannst du auch so schreiben (nur ein Beispiel)


Sub variable1()
Dim i As Integer, a as Integer, b As Integer
a = InputBox("Anfangswert")
b = InputBox("Endwert")
For i = a To b  Step 1
Cells(i, 1).Value = "X"
Next i
End Sub


wenn du jetzt über Zeile B eine Spalte einfügst würde Makro 1 die jetzige Zeile 101 = früher 100 nicht berücksichtigen. Beim 2. Makro kannst du jetzt 3 bis 101 eingeben und es geht für den gleichen Bereich wieder.
Ist aber natürlich sehr umständlich.
Gruß
Chris

Anzeige
AW: Makro Zellbezug
30.06.2007 14:42:00
Peter
Hallo Thomas,
zu Punkt 1
bei Formeln wird der Bezug beim Einfügen von Zeilen (Einfügen, Zeilen) automatisch fortgeschrieben.
In einem Makro musst du das schon selber hochsetzen, es sei denn, du hast eine kleine Routine im Coding, die eine bestimmet Zelle sucht und dann mit der Zeile beginnt.
Zu Punkt 2
DieseArbeitsmappe kann Makros enthalten, die beim Open, Close, Print, Activate der Mappe aktiv werden.
Rechtsklick auf DieseArbeitsmappe, dann im großen Fenster oben im linken DropDown Worksheet auswählen und im rechten DropDown die möglichen Ereignisse ansehen.
Ein Tabellenblatt kann ebenfalls Makros enthalten, die sich dann auf das Blatt beziehen und beim Ändern einer Zelle oder beim Aktivieren des Blattes usw. wirksam werden.
Rechtsklick auf den Tabellenblattreiter - Code anzeigen (Linksklick drauf) dann im großen Fenster oben im linken DropDown Worksheet auswählen und im rechten DropDown die möglichen Ereignisse ansehen.
In einem Modul kannst du Makos unterbringen, die allgemein tätig werden und meist über einen CommandButton aufgerufen werden.
Gruß Peter

Anzeige
AW: Makro Zellbezug
30.06.2007 17:38:09
Thomas
Vielen Dank an euch,
das ihr mir weiter geholfen habt.
Thomas

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige