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

VBA

VBA
Willi
Hallo Spezialisten,
es wird ein VBA benötigt.
Ich habe eine Tabelle von A1:K100. Hier werden die einzelnen Zellen teilweise gefüllt.
Z.B. B3 und F3, dann soll nach dem Return darunter automatisch die Zeile 4 von A:K mit Grau gefüllt werden.
oder
da in der spalte A immer eine fortlaufende Nummerierung verwendet wird, soll bei Eingabe z.B. 35
in A5, acht Zeilen darunter automatisch von A:K grau gefüllt werden.
Ich hoffe das ist so verständlich.
Danke im voraus,
mit freundlichen Grüßen
Wilfried Lenz

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA
11.07.2012 14:24:23
Willi
sorry, Betrff: Zeilen einfärben!
AW: VBA
11.07.2012 15:16:48
Armin
Hallo Willi,
schreib diesen Code in die Tabellenblatt Codseite:
  • 
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 And Target.Value > 0 Then
    Target.Offset(8, 1).Resize(1, 10).Interior.ColorIndex = 15
    ElseIf Target.Column > 1 And Target.Column 

  • LG Armin
    AW: VBA
    11.07.2012 18:36:19
    Willi
    Hi Armin,
    danke für die schnelle Antwort. Ist auch genau so wie ich es wollte.
    Ich habe den Code so geändert das auch die Spalte A mit grau wird.
    Das einzige Problem ist, wenn man eine Zelle beschreibt z.B. D5 und danach zu einer anderen geht
    wird die Zeile 6 daruter auch eingefärbt. Deshalb habe ich die Zeile im Code ab Range("B1") rausgenommen.
    Kann man dafür in Spalte B neben der lfd. Nummer das Heute=() eintragen lassen?
    Danke für deine Mühe,
    mfG Willi
    Anzeige
    AW: VBA
    11.07.2012 19:43:33
    Matthias
    Hallo
    Zitat:

    Ich habe den Code so geändert das auch die Spalte A mit grau wird.
    Schön das Du es bemerkt hast, das habe ich vor 1,5 Std. bereits Armin mitgeteilt.
    Zitat
    Kann man dafür in Spalte B neben der lfd. Nummer das Heute=() eintragen lassen?
    Du meinst - Target.Offset(,1)=Date ?
    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count = 1 Then
    If Target.Column = 1 And Target  "" Then
    Target.Offset(, 1) = Date
    Else
    Target.Offset(, 1).ClearContents
    End If
    Else
    MsgBox "bitte immer nur eine Zelle ändern", vbExclamation
    With Application
    .EnableEvents = False
    .Undo
    .EnableEvents = True
    End With
    End If
    End Sub
    

    Hilft Dir das weiter?
    Gruß Matthias
    Anzeige
    AW: VBA
    11.07.2012 20:34:15
    Willi
    Hi Mathias,
    ein Problem, wenn ich den Code ab If Target.... dem anderen Code von Armin hinzufüge, trägt er zwar
    das Datum ein aber Excel hängt sich auf und das war's. Vielleicht geht das auch nicht mit dem hinzufügen!
    Gruß Willi
    If Target gibts 2 mal ...
    11.07.2012 20:41:54
    Matthias
    Hi
    If Target gibts 2x in meinem Bsp-Code
    welches meinst Du ?
     If Target.Count = 1 Then ...
    If Target.Column = 1 And Target  "" Then ...
    
    Am besten Du zeigst die Datei um die es geht, dann kann man das am Orginal testen.
    Private Daten einfach durch andere Daten ersetzen.
    Hast Du Dir auch mal die Datei angesehen die ich bei Armin gepostet habe?
    Gruß Matthias
    Anzeige
    AW: If Target.Count = 1 Then ...
    11.07.2012 21:02:41
    Willi
    Hi,
    ich meine die erste If Target.Count = 1 Then ...
    Heute geht es leider nicht mehr, ich kann die Datei Morgen sende.
    Tschüß Willi
    AW: If Target.Count = 1 Then ...
    12.07.2012 00:08:41
    fcs
    Hallo Willi,
    wenn ein Worksheet_Change-Ereignismakro Werte in die Tabelle eintragen soll, dann sollten die Ereignismakros immer vorübergehend deaktiviert werden.
    Gruß
    Franz
    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count = 1 Then
    Application.EnableEvents = False
    If Target.Column = 1 And Target  "" Then
    Target.Offset(, 1) = Date
    Else
    Target.Offset(, 1).ClearContents
    End If
    Application.EnableEvents = True
    Else
    MsgBox "bitte immer nur eine Zelle ändern", vbExclamation
    With Application
    .EnableEvents = False
    .Undo
    .EnableEvents = True
    End With
    End If
    

    Anzeige
    AW: If Target.Count
    12.07.2012 09:12:49
    Willi
    Guten Morgen Franz,
    vielen danke für deinen Code, jetzt hat alles auf anhieb gepasst.
    Auch dank an alle anderen die mich so nett mit ihrem Wissen unterstüzt haben.
    Ich bin bestimmt nicht das letzte mal im Forum gewesen.
    mit freundlichen Grüßen
    Wilfried Lenz
    AW: VBA
    11.07.2012 15:23:17
    Bibo
    Hallo Wilfried,
    geht auch ohne VBA, z.B. für Fall 1
    Bedingte Formatierung für den Bereich A2:K100
    Bedingung - Formel ist =ODER($B1"";$F1"")
    Format - Muster - grau
    Gruß
    Bibo
    AW: VBA
    11.07.2012 15:27:06
    Armin
    Hallo Bibo,
    Schlauberger aber nicht 8 Zeilen fiefer! So hast Du zwei Baustellen.
    Gruß Armin
    AW: VBA @ Armin
    11.07.2012 16:20:48
    Bibo
    Hallo Armin,
    warum sollte das nicht gehen?
    Bedingte Formatierung für den Bereich A9:K100 (bzw. bis K91 würde auch ausreichen)
    Bedingung - Formel ist =$A1""
    Format - Muster - grau
    Also bei mir funktioniert es.
    Gruß
    Bibo
    Anzeige
    AW: VBA @ Armin
    11.07.2012 16:43:54
    Armin
    Hallo Bibo,
    in der Aufgabenstellung stand:
    da in der spalte A immer eine fortlaufende Nummerierung verwendet wird, soll bei Eingabe z.B. 35
    in A5, acht Zeilen darunter automatisch von A:K grau gefüllt werden.

    Jetz erkläre Du wie das mit bedingter Formatierung lösen willst.
    Gruß Armin
    ganz einfach ;o) fang in Zeile(9) an
    11.07.2012 17:06:08
    Matthias
    Hallo
    das mit VBA war ja so gefordert.
    geht aber tatsächlich auch mit bedingter Formatierung (würde ich pers. aber auch per VBA lösen)
    und ab Spalte (B) bis (K) einfach mit Oder() arbeiten ...
    Hier aber das Bsp. mit der bed. Formatierung:
    https://www.herber.de/bbs/user/80937.xls


    Übrigens beginnt Dein Code erst in Spalte(B) bei Eingabe in (A)
    Offset(n,1)-sollte Offset(n,0) sein und
    Target.Count solltest Du auch beachten.
    Gruß der Mitleser Matthias
    Anzeige
    AW:AW: VBA @ Armin
    12.07.2012 09:34:11
    Bibo
    Hallo Armin,
    Willi schrieb, wie von Dir zitiert,
    
    da in der spalte A immer eine fortlaufende Nummerierung verwendet wird
    
    und Du willst eine Erklärung,

    wie Du das mit bedingter Formatierung lösen willst
    .
    Bedingte Formatierung für den Bereich A9:K92
    Bedingung - Formel ist =UND(A1>0;A1=MAX(A1:A8))
    Format - Muster - grau
    Gruß
    Bibo

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige