Anzeige
Archiv - Navigation
260to264
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
260to264
260to264
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makrostart bei Zelleintritt, wie ?

Makrostart bei Zelleintritt, wie ?
23.05.2003 13:03:08
Marc
Hallo Experten !

Wer kann mir helfen ?

Ich habe in einer Mappe auf dem ersten Blatt 5 Zellen, die leer sind, aber bei Bedarf über eine hinterlegte Gültigkeitsliste ausgefüllt werden können.

Auf dem zweiten Sheet habe ich für jede dieser 5 Zellen einen Zellblock mit weiteren Infos zum Ausfüllen für jede dieser Zellen.

Ich würde es gerne hinbekommen, dass diese Blöcke (die ich standardmässig ausblende) eingeblendet werden, sobald auf dem ersten Sheet eine dieser Zellen ausgefüllt wird.
Das Makro an sich stellt nicht das Problem dar nur die automatisierte Ausführung....

Grüsse und Dank,
Marc

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Makrostart bei Zelleintritt, wie ?
23.05.2003 13:15:22
Nepumuk

Hallo Marc,
das hört sich nach einem Selection_Change - Ereignis der Tabelle an, in dem du die Position der aktiven Zelle abfrägst.
Gruß
Nepumuk

Re: Makrostart bei Zelleintritt, wie ?
23.05.2003 13:19:12
PeterG

Hallo Marc,

der Jan Tappenbeck hatte heute morgen gegen 10:00 Uhr eine ganz ähnliche Frage. Du kannst dir ja mal durchlesen, was ich geantwortet habe.

Gruss
Peter

Re: Makrostart bei Zelleintritt, wie ?
23.05.2003 13:23:15
Marc

Hallo Nepumuk !

Danke schon mal für die prompte Hilfe.

Hast du damit schon mal gearbeitet ?
Ich nicht und die VBA-Onlinehilfe gibt da auch nicht wirklich viel her, was die Verwendung angeht...

In welchem Modul deklariere ich das ? Im ersten und dann als Public, damit auf die Blöcke im zweiten Sheet zugreifen kann (diese habe ich mit Bereichsnamen versehen) ?

Danke und Gruss,
Marc

Anzeige
Re: Makrostart bei Zelleintritt, wie ?
23.05.2003 13:25:19
Marc

Hallo Peter !

Vielen Dank !
Das sieht genau nach dem aus, was ich brauche, super.

Ich probiers gleich mal aus.

DANKE !!!

Gruss,
Marc

Re: Makrostart bei Zelleintritt, wie ?
23.05.2003 14:42:39
Marc

Hallo Peter oder sonst jemand, der mir helfen kann:

Habe es nun so versucht:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Zeile%, Spalte%
Zeile = Target.Row: Spalte = Target.Column
If Zeile = 39 And Spalte = 2 Then
Range("bereich_wettbewerb2").Select
Selection.Visible = True
Else
If Zeile = 40 And Spalte = 2 Then
Range("bereich_wettbewerb3").Select
Selection.Visible = True
Else
If Zeile = 41 And Spalte = 2 Then
Range("bereich_wettbewerb4").Select
Selection.Visible = True
Else
If Zeile = 42 And Spalte = 2 Then
Range("bereich_wettbewerb5").Select
Selection.Visible = True
End If
End If
End If
End If
End Sub

Funktioniert leider nicht, d.h. es passiert nichts, auch keine Fehlermeldung.
Ich hatte die entsprechenden Bereiche vorher manuell ausgeblendet, sie sollen halt erst dann erscheinen, wenn sie gebraucht werden.

Gruss und Dank,
Marc

Anzeige
Re: Makrostart bei Zelleintritt, wie ?
23.05.2003 15:02:04
Nepumuk

Hallo Marc,
bei mir kommt sofort eine Fehlermeldung. Wie hast du die Bereiche ausgeblendet? Spalte ausblenden oder Zeilen ausblenden?
Gruß
Nepumuk

Re: Makrostart bei Zelleintritt, wie ?
23.05.2003 15:15:55
Marc

Hallo Nepumuk,

ich habe die Zeilen ausgeblendet.
Ich habe es mittlerweile auch versucht, indem ich die kompletten Zeilen als Bereich definiert habe und nicht nur die entsprechenden Zellen.

Über Bereiche muss ich das machen, weil die Zellblöcke mittels Button zusätzliche Zeilen bekommen können.

Habe mittlerweile auch das hier probiert:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Zeile%, Spalte%
Dim test

Zeile = Target.Row: Spalte = Target.Column
If Zeile = 39 And Spalte = 2 Then
Range("B39:E39").Select
test = Selection.Value
Range("bereich2").Select
If IsEmpty(test) Then
Selection.Visible = False
Else
Selection.Visible = True
End If
Else
[...]

Aber nichts, keine Fehlermeldung, kein Effekt.

Ich bin (noch) keine grosse Leuchte, was VBA angeht, aber irgendwie muss das doch gehen, oder ??

Gruss und Dank,
Marc

Anzeige
Re: Makrostart bei Zelleintritt, wie ?
23.05.2003 15:19:06
Nepumuk

Hallo Marc,
in welchen Zeilen stellen welchen Bereich dar? Und wann sollen sie wieder ausgeblendet werden?
Gruß
Nepumuk

Re: Makrostart bei Zelleintritt, wie ?
23.05.2003 15:25:57
Marc

Hallo Nepumuk,

sorry, dass ich dich so strapaziere.

In Sheet 1 sind die ausschlaggebenden Zellen
B39 - B42 (die bestehen jeweils aus nem Zellverbund von B bis E)

In Sheet 2 sind die Blöcke momentan in den Zeilen
19-26
28-35
37-44
usw.

Im Prinzip müssten die gar nicht mehr ausgeblendet werden.
Mir würde es reichen, wenn die bei Öffnen ausgeblendet wären und eingeblendet würden, sobald die entsprechende Zelle in Sheet 1 einen Eintrag erhält.

Es handelt sich bei dem Ganzen um eine Projektdokumentation/-kalkulation die über mehrere Blätter geht.
Der sinn dahinter ist der, dass der Ausfüllende nicht von einem Datenwust erschlagen wird, den er nicht braucht, sondern nur die Felder erhält, die er auch ausfüllen muss.
So als Hintergrundinfo.

Gruss und Danke,
Marc

Anzeige
Re: Makrostart bei Zelleintritt, wie ?
23.05.2003 15:57:54
Nepumuk

Hallo Marc,
der Code kommt in das Klassenmodul der Tabelle1. Einfach einen rechtsklick auf den Tabellenreiter, dann Code anzeigen und folgendes Programm reinkopieren.


Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 Then
        Select Case Target.Row
            Case 39: Worksheets(2).Rows("19:26").EntireRow.Hidden = False
            Case 40: Worksheets(2).Rows("28:35").EntireRow.Hidden = False
            Case 41: Worksheets(2).Rows("37:44").EntireRow.Hidden = False
            Case 42: Worksheets(2).Rows("46:53").EntireRow.Hidden = False
        End Select
    End If
End Sub

Folgender Code kommt in das Klassenmodul "DieseArbeitsmappe".
Einfach einen rechtsklick auf das Excelicon neben der Menüleiste,
Code anzeigen und Programm reinkopieren.

Private Sub Workbook_Open()
    With Worksheets(2)
        .Rows("19:26").EntireRow.Hidden = True
        .Rows("28:35").EntireRow.Hidden = True
        .Rows("37:44").EntireRow.Hidden = True
        .Rows("46:53").EntireRow.Hidden = True
    End With
End Sub


     Code eingefügt mit Syntaxhighlighter 2.1

Gruß
Nepumuk

Anzeige
Re: Makrostart bei Zelleintritt, wie ?
23.05.2003 16:03:25
Marc

Ach Nepumuk,

du bist Spitze !
Danke !

Eine letzte Frage noch:
Kann ich die Anweisungen auch mit Range anstatt Rows machen ?
Erklärung:
Block A belegt jetzt die Zeilen 19-26.
Ich fülle vorne die Zelle aus, bekomme den Block. Diesen kann ich aber über einen Button erweitern, d.h. Zeilen hinzufügen.
Mache ich das einmal und fülle dann erst vorne ne weitere Zelle aus, stimmt der Bezug ja nicht mehr...

Ach was, ich probiers einfach aus.

Ich danke Dir für deine Hilfe !
Gruss,
Marc

Re: Makrostart bei Zelleintritt, wie ?
23.05.2003 16:57:39
Marc

Hallo nochmal !

Keine Frage, nur ein kleiner Nachsatz:
Habe die Rows durch die Range-angaben ersetzt und in die With-Abfrage noch If-Bedingungen eingebaut (damit die eingeblendet bleiben, wenn da schon was ausgefüllt wurde).

Und es schnurrt, wie gewünscht !!

Also Nepumuk, es sei Dir noch Tausend Mal gedankt !!!

Grüsse,
Marc

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige