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

Erstellen einer Autoform durch Text

Erstellen einer Autoform durch Text
15.10.2008 11:56:00
Christoph
Hallo zusammen.
Ich möchte gerne über eine "WENN, DANN, SONST" - Funktion eine Autoform erstellen (ohne Makro).
In diesem Fall soll, falls in einer bestimmten Zelle "WT" steht in einer anderen Zelle eine Klammer erstellt werden (hier: AutoForm 286).
Ich schaffe es zwar, daß er in diesem Fall "AutoForm 286" als Text in die Zelle schreibt, nicht aber das er statt dessen diese Grafik erzeugt!
Frage: wie stell ich das am geschicktesten an?
EDIT: Noch etwas Anderes: Welche Zeile muss ich in einem Makro einfügen, damit die nachfolgenden Eintragungen solange in "rot" gemacht werden, bis ich die Textfarbe wieder ändere?
Also nicht: "Selection.Font.Color..." - da das ja nur im nachhinein die Farbe ändert!
Danke schonmal
Christoph

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Erstellen einer Autoform durch Text
15.10.2008 12:07:03
David
Hi Christoph,
eine Autoform kann nicht per Formel erzeugt werden. Evtl. kannst du dir behelfen, indem du die Form als Symbol einfügst und entsprechend formatierst (Stichwort: Wingdings & Co.)
zu deiner 2.Frage: Was meinst du mit "nachfolgenden Eintragungen"? Poste bitte deinen kompletten Code, damit man sieht, was das Makro macht.
Gruß
David
AW: Erstellen einer Autoform durch Text
15.10.2008 12:43:29
Christoph
Hallo.
Nachfolgend der Code. Alle Sa, So oder Feiertage sollen in rot eingetragen werden, alles andere in schwarz!

Do
ActiveSheet.Cells(startzeile, startspalte) = Aktualdat
'Makro trägt das Datum, die Schichten und die Wochentage ein
If WeekDay(Aktualdat) = 1 Then
Schichten = 4
Tag = "SO"
ElseIf WeekDay(Aktualdat) = 7 Then
Schichten = 4
Tag = "SA"
ElseIf Aktualdat = CLng(CDate("25.12." & Jahreszahl)) Then 'Feiertag
Schichten = 4
Tag = "SO"
ElseIf Aktualdat = CLng(CDate("26.12." & Jahreszahl)) Then 'Feiertag
Schichten = 4
Tag = "SO"
ElseIf Aktualdat = CLng(CDate("01.01." & Jahreszahl)) Then 'Feiertag
Schichten = 4
Tag = "SO"
ElseIf Aktualdat = CLng(CDate("01.05." & Jahreszahl)) Then 'Feiertag
Schichten = 4
Tag = "SO"
ElseIf Aktualdat = CLng(CDate("03.10." & Jahreszahl)) Then 'Feiertag
Schichten = 4
Tag = "SO"
ElseIf Aktualdat = Karfreitag Then 'Feiertag
Schichten = 4
Tag = "SO"
ElseIf Aktualdat = Ostermontag Then 'Feiertag
Schichten = 4
Tag = "SO"
ElseIf Aktualdat = Himmelfahrt Then 'Feiertag
Schichten = 4
Tag = "SO"
ElseIf Aktualdat = Pfingstmontag Then 'Feiertag
Schichten = 4
Tag = "SO"
Else
Schichten = 3
Tag = "WT"
End If
'Eintragen der Schichten und Wochentage
For i = 0 To Schichten - 1
ActiveSheet.Cells(startzeile + i, startspalte) = Aktualdat
ActiveSheet.Cells(startzeile + i, startspalte + 1) = i + 1
ActiveSheet.Cells(startzeile + i, startspalte + 30) = Tag
Next i
startzeile = startzeile + Schichten
Aktualdat = Aktualdat + 1
Loop Until Day(Aktualdat) = 1


Zu der 1. Frage: das ist natürlich schlecht! Die Klammern müssten schon eine definierte Größe haben und das geht wohl nicht mit Windings!
Danke schonmal und Gruß

Anzeige
AW: Erstellen einer Autoform durch Text
15.10.2008 13:29:00
David
Hallo Christoph,
dein Code ist wohl leider immer noch nicht vollständig, so daß ich ihn nicht in einer Testmappe verwenden konnte. Ich bin auch nicht der große VBA-Experte und kann nicht alles nachvollziehen.
Ich würde das Problem allerdings eher per bedingter Formatierung lösen. Folgende Formel würde da greifen:
=NICHT(ODER(WOCHENTAG(A1;2)>5;ISTNV(VERGLEICH(A1;Feiertage;0))))
wobei A1 in dem Fall durch die erste Zelle des entsprechenden Bereichs ersetzt werden müsste. 'Feiertage' ist ein definierter Name, der auf einen Bereich in der Mappe verweist, der eine Liste aller Feiertag im Datumsformat ist.
Falls du die bed. Formatierung per VBA definieren willst, ginge das so:

With Range(...)
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=NICHT(ODER(WOCHENTAG(D5;2)>5;ISTNV(VERGLEICH(D5;Feiertage;0))))"
.FormatConditions(1).Interior.ColorIndex = 3
End With


Gruß
David

Anzeige
AW: Erstellen einer Autoform durch Text
15.10.2008 14:37:38
Christoph
Hey David.
- Ja, das Makro ist sehr lang, deswegen hab ich nur den entscheidenden Auszug gepostet.
Aber ich denke, Du hast recht: über 2 bedingte Formatierungen wäre das ganze einfacher zu lösen!
Bedingung: Formel ist
Formel: wenn in Spalte AF der Text "SA" steht
Format: Text rot färben
Wie müsste dann die Formel in Excel lauten?
Christoph
AW: Erstellen einer Autoform durch Text
15.10.2008 14:47:00
David
Hallo Christoph,
ganze Spalte markieren und dann bedingte Formatierung mit der Formel:
=$AF1="SA"
Gruß
David
AW: Erstellen einer Autoform durch Text
15.10.2008 14:57:36
Christoph
So hatte ich das auch probiert, und dann passiert folgendes:
Userbild
Ist mir ein Rätsel - völlig willkürlich!
Gruß
Anzeige
AW: Erstellen einer Autoform durch Text
15.10.2008 15:04:22
David
Überprüfe in den 'falschen' Zellen, ob der Bezug auf die richtige Zeile zeigt.
Hast du bei der Eingabe der Formel das $-Zeichen mit eingegeben und vorher die KOMPLETTE Spalte markiert (bei 1 beginnend!!!)?
Gruß
David
AW: Erstellen einer Autoform durch Text
15.10.2008 15:27:45
Christoph
Das war's - Danke! (Das erste Datum steht ja erst in Zeile 7!)
Bleibt also nur noch die Sache mit der Klammer - werd nochmal versuchen das doch in das vorhin gepostete Makro einzubinden!
Gruß

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige