Mit VBA Zellen füllen wenn
#1
Hallo Excel-Freunde
Ich stehe mit meinen VBA Kentnissen mal wieder etwas am Berg.

Folgendes Problem:
Ich möchte das die Spalte A11 bis  A5000 automatisch die Formel beinhaltet

"=A" eine Zeile höher
sofern folgende Bedingungen zutreffen:
     - Wenn nichts von Hand (Text) eingetragen ist. (Wenn etwas von Hand eingetragen wird sollte die Formatierung der Zelle auf "Überschrift 3" laufen, ansonsten Standart)
und
     - Formel nur ausfüllen wenn es in der Spalte D nicht auf der letzten Zeile angelangt ist (hier gibt es aber leere Zellen dazwischen, es müsste also wirklich die letzte Zeile ermittelt werden in welcher von untenher nichts steht)

Das ganze würde ich dann in der "Private Sub Worksheet_Change(ByVal Target As Range)" einbinden

Irgedwie so:

Wenn in der Spalte A11:A5000 etwas geändert wird dann mache

  Wenn in Spalte D nicht letzte Zeile dann
     Wenn aktive Zelle kein Text dann
          Aktive Zeile = Formel (="A" aktive Zeile -1)   (Wichtig das hier die Formel einetragen wird und nicht der Text!)
          Standart
     Sonst
         Überschrift 3
      Ende Wenn
  Ende Wenn

Ende Wenn

Kann mir da jemand helfen?

Gruss

Harry
Top
#2
Hallo Harry,

... den Unterschied zwischen Standard und Standart kennst Du ?

Und mir fehlt was, daß ich vernünftig anfassen und prüfen kann !
Bei irgendwelchen Codeschnipseln fange ich gar nicht erst an.
Top
#3
:19: „Wer Rechtschreibfehler findet, darf sie behalten.“ :18:

Etwas Codeschnippsel....


Code:
NormalSchriftfarbe = RGB(238, 238, 238) 'Schriftfareb für Normalen Text der aber Hell sein soll, also kein Titel
inhalte = ActiveCell 'der Inhalt von der aktiven Zelle ablegen

If Intersect(Target, Range("A10:A5000")) Is Nothing Then 'kontrolliert ob in der Spalte A etwas geändert wird, wenn nein gehe Spalte B kontrollieren
    GoTo SpalteBkotrollieren
Else
    Target.Activate 'ein Schritt zurück (ansonsten wird die aktive Zelle geändert was falsch wäre)
        'If ActiveCell <> "" Then 'setzte nun die entsprechende Formatierung
    If inhalte = "" Or ActiveCell.HasFormula = True Then
        'If Left(ActiveCell, 1) = "=" Then
        ActiveCell.Select
            Selection.Style = "Normal"
            Selection.Font.Color = NormalSchriftfarbe
        
    Else
        ActiveCell.Select
            Selection.Style = "Überschrift 3"
    End If

        'Wenn Zelle Leer
    If inhalte = "" Then 'Wenn die Zelle Leer ist wird die Formel =Ai-1 gesetzt
        'MsgBox (found.Column)
            ActiveCell = "=A" & ActiveCell.Row - 1
                Selection.Style = "Normal"
                Selection.Font.Color = NormalSchriftfarbe
    End If
    Call Datum
End If

aber irgendwie ist das zu kompliziert und fehlerhaft....

Gruss

Harry
Top
#4
Hallo,

Zitat: „Wer Rechtschreibfehler findet, darf sie behalten.“

Du bist ja ein richtig kleveres Kerlchen
... das ist kein Rechtschreibfehler sondern manchmal der Unterschied zwischen
einem laufendem Makro und einem, daß dicke Backen macht.

Dein Code sind auch immer noch Codeschnipsel.

Diese Gesamtheit läßt mich aber daran zweifeln, ob ich noch weiterhin versuchen
will und werde, Dir zu helfen.
Top
#5
Danke für den Tipp Angel

Gruss

Harry
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste