Excel 2010 - Formular / Eingabeaufforderung

Hallo,

Ich habe drei „kleine“ Excel-Probleme:

  1. Ich möchte, dass ein Formularsteuerelement nacheinander zwei Makros abruft und mich anschließend automatisch nach einer Projektnummer fragt, die es dann in eine Zelle schreibt.

  2. In einem weiteren Makro soll automatisch eine Vorlage (Blatt) kopiert werden, welche die Bezeichnung der bereits oben genannten Projektnummer erhält.

  3. Ich habe das Problem, dass ich mich in einer Formel auf eine bestimmte Zelle beziehe (z.B.A12). Durch einfügen einer neuen Zeile verschiebt sich automatisch auch der Bezug mit (auf A13). Wie kann ich das unterbinden, sodass A12 auch A12 bleibt?

Danke für Eure zahlreiche (oder eine richtige) Antwort/en!

Hallo,
ließe sich evt. eine Function schreiben, die die Adresse der angefragten Zelle zurück gibt? Diesen Rückgabewert kann man dann auch in der Formel auswerten.

Welche Adresse?
Muss vielleicht noch dazu sagen, dass ich bei Excel etwas dööflich veranlagt bin…

Hallo,
ließe sich evt. eine Function schreiben, die die Adresse der
angefragten Zelle zurück gibt? Diesen Rückgabewert kann man
dann auch in der Formel auswerten.

Mit Adresse meine ich z.B. „A12“. Soll das die letzte beschriebene Zelle einer Liste sein, die sich fortschreibt, oder steht dort ein bestimmter Begriff, nach dem die Function suchen könnte? Hat die Zelle eine bestimmte Farbe, nach der gesucht werden könnte?
So ließe sich die Adresse ermitteln und in der anschließenden Formel verarbeiten.

1 „Gefällt mir“

A12 ist die das erste Feld einer Tabelle. Beim Einfügen einer weiteren Zeile rutscht die aktuelle Zeile nach unten, der Bezug soll jedoch weiterhin auf A12 gehen.

Danke für die schnellen Antworten!

Dann muss man den Zellbezug in der Formel nur in Dollar-Zeichen setzen, damit er absolut wird. Also"$A$12". Ansonsten ist er relativ und die Formel passt sich der geänderten Zeilenzahla an.

1 „Gefällt mir“

Gute Idee ;o)
Habe ich aber leider schon erfolglos getestet.

Dann muss man den Zellbezug in der Formel nur in
Dollar-Zeichen setzen, damit er absolut wird. Also"$A$12".
Ansonsten ist er relativ und die Formel passt sich der
geänderten Zeilenzahla an.

moin teuschnitz,

dies wären meine programmzeilen:

in userform1:

Private Sub CommandButton1_Click()
makro1 „x“
makro2 „y“
projektnummer = InputBox(„Projektnummer“)
Cells(1, 1) = projektnummer
Worksheets(1).Copy After:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = projektnummer
End Sub

in modul1:

Global projektnummer As String

Sub makro1(x As String)
MsgBox x
End Sub

Sub makro2(x As String)
MsgBox x
End Sub

Function festbezug(bezug As String) As Range
Set festbezug = Range(bezug)
End Function

zu 3.:
wenn du mit vba-funktionen wie oben „festbezug“ arbeitest, verschiebt sich nix.
beispiel: "=festbezug(„a1“)

wenn du dich noch nicht so gut auskennst und fragen hast, beantworte ich diese gerne.

viel erfolg, ascan

DANKE! Ich werde das heute Abend gleich mal ausprobieren!

Hallo,

Ich habe drei „kleine“ Excel-Probleme:

  1. Ich möchte, dass ein Formularsteuerelement nacheinander
    zwei Makros abruft und mich anschließend automatisch nach
    einer Projektnummer fragt, die es dann in eine Zelle schreibt.

Siehe hier

  1. In einem weiteren Makro soll automatisch eine Vorlage
    (Blatt) kopiert werden, welche die Bezeichnung der bereits
    oben genannten Projektnummer erhält.

Mit Makro recorder aufzeichnen.

  1. Ich habe das Problem, dass ich mich in einer Formel auf
    eine bestimmte Zelle beziehe (z.B.A12). Durch einfügen einer
    neuen Zeile verschiebt sich automatisch auch der Bezug mit
    (auf A13). Wie kann ich das unterbinden, sodass A12 auch A12
    bleibt?

Siehe hier

  1. Ich möchte, dass ein Formularsteuerelement nacheinander
    zwei Makros abruft und mich anschließend automatisch nach
    einer Projektnummer fragt, die es dann in eine Zelle schreibt.

  2. In einem weiteren Makro soll automatisch eine Vorlage
    (Blatt) kopiert werden, welche die Bezeichnung der bereits
    oben genannten Projektnummer erhält.

  3. Ich habe das Problem, dass ich mich in einer Formel auf
    eine bestimmte Zelle beziehe (z.B.A12). Durch einfügen einer
    neuen Zeile verschiebt sich automatisch auch der Bezug mit
    (auf A13). Wie kann ich das unterbinden, sodass A12 auch A12
    bleibt?

Hallo Teuschnitz,

zu drei kann ich dir sagen, setze vor den Spaltenbuchstaben und vor die Zeilennummer jeweils ein $ (also $A$12) und somit bleibt der Bezug fest auf der bestimmten Zelle.
Die beiden anderen Probleme müsste ich auch erst probieren, hab aber dazu im Moment nicht genügend Zeit, entschuldige bitte.

Gruß

Johannes E.

Nun ja, wenn sich der Bereich ändert ändert er sich eben. Ich sehe zwei Alternativen:
1.: die Adressierung nicht im Format Cells(A12) sondern über Variablen, z.B.:
v_row=12: v_col=1: Cells(v_row, v_col) (hier erst row, dann col) und die entsprechenden Variablen beim Einfügen anpassen
2.: die Zelle A12 mit einem Namen versehen, der ändert sich beim Verschieben nicht (habe ich aber noch nicht in Makros probiert)
Viel Erfolg
Rainer

zu Problem 3)
markiere die zellen ab B13 nach rechts, klicke rechts auf >>zellen einfügen, klicke links auf >>zellen nach unten verschieben, A12 bleibt A12