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

Bedingung Wenn zwischen

Bedingung Wenn zwischen
04.06.2014 13:52:06
Falo
Hallo Excelfrunde
Großes Problem für einen VBA Anfänger.
Für euch Profi´s bestimmt nur eine Kleinigkeit.
ich habe eine Tabelle1 und möchte, wenn in der Spalte H ab 6 ein Wert von 530 bis 600 steht, das in der Spalte T ein F Reingeschrieben wird links ausgerichtet. Das gleiche mit den werten, 1330 bis 1400 = Spalte T ein S Reingeschrieben werden Mittig ausgerichtet. Und
2130 bis 2200 = Spalte T ein N Reingeschrieben werden wird, Rechts ausgerichtet.
Trift keiner der Werte zu, soll ? Reingeschrieben werden.Mittig ausgerichtet.
kann mir hier jemand helfen
ich hoffe ich habe es verständliche beschrieben
LG
Olaf

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bedingung Wenn zwischen
04.06.2014 14:08:59
Sheldon
Hallo Olaf,
das sind zwei getrennte Aufgaben. Was in die Zelle eingetragen wird, entscheidet eine Wenn-Formel, z. B. so eine (Zelle T6):
=WENN(UND(H6>=530;H6=1330;H6=2130;H6 Linksbündig, zentriert und rechtsbündig lässt sich nur über bedingte Formatierung lösen. Hierzu nimmst Du die Prüfungen aus den Wenn-Formeln als Formel für die bedingte Formatierung. Ich empfehle dringend, die Dokumentation dazu in der Excelhilfe zu lesen!!
Gruß
Sheldon

hab ich schon manchmal vermisst ... aber ...
04.06.2014 14:22:49
der
Hallo Sheldon,
.... das: "Linksbündig, zentriert und rechtsbündig lässt sich nur über bedingte Formatierung"
Wo steht denn das?
Ich denke hierzu ist kann man bestenfalls formeltechnisch mit z.B. ein paar Leerzeichen vor der "S" etwas tricksen. Die Formel würde ich dann auch gleich mit z.B. VERWEIS() schreiben oder das doch gleich Marc mit VBA überlassen.
Gruß Werner
.. , - ...

Anzeige
…schreibst Du doch selbst
04.06.2014 15:54:37
Sheldon
Hallo Werner,
das mag kleinlig klingen, aber es gibt da schon einen entscheidenden Unterschied zwischen 'eingerückt mit Leerzeichen' und 'zentriert', bzw. 'rechtsbündig'. Z.B. funktionieren Sverweis und Vergleich nicht mit Suchkriterien, wenn in der betreffenden Spalte auch mal Leerzeichen vorangestellt sind und manchmal nicht. Es gibt natürlich noch mehr Probleme in Bezug auf Formeln, Pivots etc.
Eine Formel zum Verändern von Formaten einer Zelle, sei es nun die Schriftfarbe, der Rahmen oder die Füllung, gibt es nicht. Ebenso wenig für linksbündig, zentriert oder rechtsbündig. Folglich geht das, sofern die Formatierung abhängig sein soll vom Inhalt einer Zelle, nicht anders als mit einer bedingten Formatierung.
Gruß
Sheldon

Anzeige
Du hast mich da falsch verstanden ...
04.06.2014 16:13:47
der
Hallo Sheldon,
... ich schrieb nicht, das man mit Excel-Formeln das Format einer Zelle ändern kann. Das ist mir schon klar. Ich wollte Dir nur anzeigen, dass mir nicht bekannt ist, dass man mittels bedingter Formatierung die Ausrichtung einer Zelle beeinflussen kann, was Du nun erneut behauptest und ich - nun in Klartext - erneut bezweifele. Ich habe XL 2010.
Gruß Werner
.. , - ...

huch!
04.06.2014 16:21:33
Sheldon
Stimmt genau, Werner,
ich hatte gar nicht nachgeprüft, ob das geht. Ausrichtung ist keine Option der bedingten Formatierung, also bleibt ja nur noch VBA.
Also bleibt mir nur noch zu unterstreichen, dass ich grundsätzlich vom Voranstellen von Leerzeichen abrate, nur um eine Einrückung hinzubekommen. Das lässt sich optisch besser regeln, in dem konkreten Fall wären ja auch einfach drei Spalten nebeneinander eine denkbare Alternative. Aber die bedingte Formatierung zu empfehlen, war ganz klar falsch.
Gruß
Sheldon

Anzeige
AW: Bedingung Wenn zwischen
04.06.2014 14:10:02
MarcR
Hallo Olaf,
probiers mal hiermit:
Sub test()
Dim last_row As Long
Dim i As Integer
last_row = ThisWorkbook.Worksheets(1).UsedRange.Rows.Count
For i = 1 To last_row
If ThisWorkbook.Worksheets(1).Cells(5 + i, 8).Value > 530 And ThisWorkbook.Worksheets(1) _
.Cells(5 + i, 8).Value  1330 And ThisWorkbook. _
Worksheets(1).Cells(5 + i, 8).Value  2130 And ThisWorkbook. _
Worksheets(1).Cells(5 + i, 8).Value 
Grüße Marc

AW: Bedingung Wenn zwischen
04.06.2014 18:03:13
Falo
Hallo Marc,
genau so sollte es sein, Danke, es gibt nur ein problem wenn keine Daten mehr von mir vorhanden sind, schreibt er weiter, bis zum ende des Tabellenblattes, wie kann man das erreichen das wenn von mir keine Daten mehr da sind das das Makro aufhört.
LG
Olaf

Anzeige
AW: Bedingung Wenn zwischen
05.06.2014 07:34:16
MarcR
Hallo Olaf,
ersetze bitte die Zeile last_row = ThisWorkbook.Worksheets(1).UsedRange.Rows.Count durch last_row = ThisWorkbook.Worksheets(1).Cells(Rows.Count, 8).End(xlUp).Row . Dann sollte es funktionieren!
Grüße Marc

AW: Bedingung Wenn zwischen
05.06.2014 09:05:19
Falo
Hallo Marc,
er hängt mir immernoch, vier leere Zeilen an wie kommt das.
ist es noch möglich, das die, ? in fett und Schriftgröße 12 dazustellen.
Danke dir imm Vorraus
LG
Olaf
  • 
    Private Sub CommandButton7_Click()
    Dim last_row As Long
    Dim i As Integer
    last_row = ThisWorkbook.Worksheets(1).Cells(Rows.Count, 8).End(xlUp).Row
    For i = 1 To last_row
    If ThisWorkbook.Worksheets(1).Cells(5 + i, 8).Value > 530 And ThisWorkbook.Worksheets( _
    1) _
    .Cells(5 + i, 8).Value  1330 And ThisWorkbook. _
    Worksheets(1).Cells(5 + i, 8).Value  2130 And ThisWorkbook. _
    Worksheets(1).Cells(5 + i, 8).Value 


  • Anzeige
    AW: Bedingung Wenn zwischen
    05.06.2014 11:20:18
    MarcR
    Hallo Olaf,
    das mit den letzten vier Zeilen kann ich mir auch nicht erklären. Die ersetzte Code-Zeile sucht nach dem letzten Eintrag in der Spalte H. Ist die letzte Zelle der Spalte H, die einen Inhalt besitzt beispielsweise die Zelle H25, wird der Variablen last_row der Wert 25 zugewiesen. Vielleicht weiß jemand anderes hier im Forum, woran das liegen könnte.
    Bezüglich deiner zweiten Frage: Ja ist möglich die ? fett und in Schriftgröße 12 darzustellen:
    Füge dazu bitte vor die Code-Zeile End If folgende beiden Zeilen ein:
    ThisWorkbook.Worksheets(1).Cells(5 + i, 20).Font.Bold = True
    ThisWorkbook.Worksheets(1).Cells(5 + i, 20).Font.Size = 12

    Anzeige
    AW: Bedingung Wenn zwischen Zusatz
    05.06.2014 11:35:24
    MarcR
    Hallo Olaf,
    hier noch ein kleiner Zusatz: Wenn du genau weißt bis zu welcher Zeile das Makro laufen soll,
    kannst du auch in der Code-Zeile For i = 1 To last_row das last_row durch die Zeilenzahl ersetzten.
    Soll das Makro beispielsweise in der Zeile 53 stoppen, schreibe For i = 1 To 53.
    Grüße Marc

    AW: Bedingung Wenn zwischen Zusatz
    05.06.2014 14:24:51
    Falo
    Hallo Marc,
    Danke, erst mal für deine Bemühungen.
    es sind 5. Zeilen, die er unten anhängt nicht 4.
    ist es möglich, da meine Daten erst in der 6. Zeile anfangen, und die ersten 5. Zeilen leer sind. Das diese unten mit angehängt werden
    LG
    Olaf

    Anzeige
    AW: Bedingung Wenn zwischen Zusatz
    06.06.2014 09:09:23
    MarcR
    Hallo Olaf,
    ich denke nicht, dass es daran liegt. Es könnte sein, dass diese Zellen vorher schon einmal einen Inhalt besaßen und nun von vba als genutzt wahrgenommen werden oder vielleicht befinden sich Leerzeichen in den Zellen. Eine andere Erklärung kann ich dir leider nicht geben, da ich mir das selbst nicht erklären kann.
    Grüße Marc

    AW: Bedingung Wenn zwischen Zusatz
    06.06.2014 09:26:10
    EtoPHG
    Hallo Marc,
    Ganz klar liegt es an der Tatsache "... da meine Daten erst in der 6. Zeile anfangen...".
    Deine i Variable für die Zeile beginnt schliesslich bei 1, wird aber im Schleifeninnern immer um +5 erhöht. Folglich werden in den letzten 5 Schleifendurchgängen immer 5 Zeilen nach der last_Row durch den Else Zweig des if mit "?" gefüllt!
    Korrektur:
    1. Dim i As Long ' Zeilen/Spalten Index sollten immer mit Long definiert werden
    2. For i = 6 to last_row
    3. Alle (5 + i, ...) innerhalb der Schleife durch (i,...) ersetzen!
    Gruess Hansueli

    Anzeige
    AW: Bedingung Wenn zwischen Zusatz
    06.06.2014 09:43:06
    MarcR
    Hallo Hansueli,
    da hast du ganz klar Recht. Jetzt wo du es sagst ist es natürlich logisch. Danke dir! Dieser Fehler wäre mir glaube ich nicht mehr aufgefallen und Olaf du hattest natürlich damit dann auch Recht.
    Grüße Marc

    AW: Bedingung Wenn zwischen Zusatz
    07.06.2014 11:47:38
    Falo
    Hallo Marc und Hansueli ,
    Danke Euch beiden, das hat auch nicht geklappt. Es wird erst ab der 5.Zeile, dach meiner ersten Daten zeile angefangen. Ich habe es jetzt so gelöst, For i = 1 To last_row - 5 ich danke Euch trotzdem. Für Eure Hilfe bei meinem Problem.
    LG
    Olaf

    AW: Bedingung Wenn zwischen Zusatz
    06.06.2014 09:17:02
    MarcR
    Hallo Olaf,
    eine Frage noch: Kommen in Spalte H zwischendrin leere Zellen vor?
    Gruß Marc

    Anzeige
    AW: Bedingung Wenn zwischen
    04.06.2014 15:17:07
    EtoPHG
    Hallo Falo,
    Formel ind T6...Tn
    =WENNFEHLER(INDEX($U$1:$U$3;(((H6>529)*(H61329)*(H62129)*(H6

    In U1...U4 stehen F, S, N, ? und zwar so, wie sie in T dargestellt werden sollen, d.h. mit Leerstellen für mittig und rechtsbündig.
    Gruess Hansueli

    AW: Bedingung Wenn zwischen
    04.06.2014 23:52:41
    Falo
    Hallo Marc,
    genau so sollte es sein, Danke, es gibt nur ein problem wenn keine Daten mehr von mir vorhanden sind, schreibt er weiter, bis zum ende des Tabellenblattes, wie kann man das erreichen das wenn von mir keine Daten mehr da sind das das Makro aufhört.
    LG
    Olaf

    AW: Bedingung Wenn zwischen
    05.06.2014 08:26:50
    EtoPHG
    Hallo Olaf,
    1. Achte bitte darauf, wo im Thread du wem antwortest.
    2. Was spricht gegen eine einfache Formel-Lösung? Schliesslich müssen Makros explicit ausgelöst werden und sind wartungsaufwändig, fehleranfällig und u.U. aus Sicherheitsgründen nicht zugelassen.
    Gruess Hansueli

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige