Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1300to1304
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- Tachoscheibe

VBA- Tachoscheibe
01.03.2013 11:22:39
ete
Hallo,
mit der vorliegenden VBA- Programmierung einer Tachoscheibe sollen Kennzahlen visualisiert werden.
Leider stehen nicht immer die erforderlichen daten zur Verfügung.
Wie muss der VBA- Code geändert werden, dass wenn eine Angabe nicht verfügbar ist, die Tachoscheibe durch einen Textblock "Daten nicht verfügbar" ersetzt wird?

Die Datei https://www.herber.de/bbs/user/84121.xls wurde aus Datenschutzgründen gelöscht

Die Eingabe erfolgt im Tabellenblatt 'Eingaben'. Hier möchte ich statt den Wert, bei Nichtverfügbarkeit "Nicht verfügbar" eintragen.
Die Nichtverfügbarkeit von Daten kann sich auch auf die anderen Werte im Arbeitsblatt 'Eingaben' beziehen.
Irgendwie muss also statt der Fehlermeldung: Laufzeitfehler '13', "Typen unverträglich" eine andere Aktion (Wenn alle Daten verfügbar, dann erstelle Tacho; ein Wert nicht verfügbar, dann erstelle Textblock "Daten nicht korrekt/ verfügbar")stattfinden.
Vielen Dank vorab.

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

Betreff
Datum
Anwender
Anzeige
AW: VBA- Tachoscheibe
01.03.2013 22:13:53
JoWE
Hallo Namenloser,
Textbox erstellen, in den Vordergund über den Tacho legen
per Makro beim Aktivieren der Tabelle "Tacho" alle Shapes sichtbar machen
und nur die Textbox unsichtbar machen.
Wenn der Fehler 13 auftritt, alle Shapes unsichtbar machen und nur
die Textbox wieder sichtbar machen.
Gruß
Jochen
P.S.
Wenn Du vergeblich auf Antworten gewartet hast,
liegt das möglicherweise am fehlenden Klarnamen im fehlenden Gruß

AW: VBA- Tachoscheibe
04.03.2013 10:12:54
ete
Hallo Jochen,
vielen Dank für deine Antwort.
Deine Beschreibung sollte tatsächlich meinem Problem einer Lösung zuführen.
Leider sind meinerseits VBA- Kenntnisse eher als nicht vorhanden zu beschreiben.
Daher war ich bereits froh, eine programmierte Tachoscheibe zu haben und diese anwenden zu können.
Kannst du bitte den entsprechenden VBA- Code bzw. die anweisungen aufschreiben.
Vielen Dank und Grüße von
Etienne

Anzeige
AW: VBA- Tachoscheibe
04.03.2013 20:57:24
JoWE
Hallo Etienne,
hier Deine Arbeitsmappe incl. meiner Anpassungen.

Die Datei https://www.herber.de/bbs/user/84184.xls wurde aus Datenschutzgründen gelöscht


Die Änderungen sind im Coder der Tabelle Tacho dirket am Anfang
und im Modul BSC in der Function tbscMain.
Gruß
Jochen

AW: VBA- Tachoscheibe
04.03.2013 21:38:19
ete
Guten Abend Jochen,
leider funktioniert deine Anpassung, zumindest auf meinem Rechner, nicht.
Anbei ein Screenshot für das Eingabeblatt mit dem Wert "Nicht verfügbar"
Userbild
leider erscheint im Tacho dann die Fehlermeldung:
Userbild
Hier soll statt dieser Fehlermeldung, eine Textbox über dem Tacho liegen, mit der Angabe "Nicht verfügbar".
Hat das bei dir funktioniert, muss ich etwas anderes bei mir einstellen?
Gruß
Etienne

Anzeige
AW: VBA- Tachoscheibe
05.03.2013 06:50:22
JoWE
Hallo Etienne,
meine Lösung funktionierte nur dann wenn alle Daten in Tabelle Eingaben fehlten.
Jetzt habe ich die Fehlerbehandlung ins Worksheet_Activate_Ereignis der Tabelle Tacho verschoben.
Die Fehlerroutine greift, sobald ein ein Übergabewert für das Modul BSC.TbsMain fehlt.
https://www.herber.de/bbs/user/84190.xls
Gruß
Jochen

AW: Korrektur
05.03.2013 06:58:21
JoWE
Uups, da war ein kleiner Denkfehler, jetzt aber:

Die Datei https://www.herber.de/bbs/user/84191.xls wurde aus Datenschutzgründen gelöscht


Gruß
Jochen

Anzeige
AW: sorry, noch 'ne Korrektur
05.03.2013 07:12:55
JoWE
Im Code der Tabelle Tacho muss es in diesem Abschnitt so aussehen:
    For Each w In Sheets("Eingaben").Range("B3:B15")
If w = "" Or w = "nicht verfügbar" Then GoTo errCatch
Next

Jochen

AW: sorry, noch 'ne Korrektur
05.03.2013 09:30:22
ete
Hallo Jochen,
du bist ja schon früh unterwegs.
Danke, funktioniert einwandfrei.
Um meine Kenntnisse zu vertiefen, wo ist eigentlich beschrieben, was in der Textbox "16129" stehen soll.
Ich habe nirgendwo gefunden, dass du definiert hast, das dort "Fehler" stehen soll. Ich würde diese Funktion nämlich gerne erweitern, so dass in der Textbox der Wert aus der jeweiligen Zelle mit dem fehlenden bzw. unverträglichen Wert des Eingabeblattes steht.
Nach der Systematik, wenn das Tacho nicht erstellbar, weil ein Wert fehlt bzw. "unverträglich" ist, dann schreibe den Wert der unverträglich ist.
So kann ich den Grund des fehlenden Wertes in die Zelle eintragen und statt des Tachos hätte ich dann die Textbox mit der Ursachenmeldung.
Z.B. "Bereich hat nicht geliefert" oder "Kennzahl für den Bereich nicht vorhanden".
Aber ich bin schon super zufrieden, zu meinem ersten Eintrag (Anfrage)in diesem Forum, habe ich prompte Hilfe erhalten. Danke Jochen.
Gruß
Etienne

Anzeige
AW: sorry, noch 'ne Korrektur
05.03.2013 12:11:29
JoWE
Hallöchen,
der Text steht fix in der Textbox.
Wen Du selbst einen fixen Text eingeben willst, kannst Du die Textbox im Direktfenster der VBA-Umgebung sichtbar machen mit dem Befehl: Sheets("Tacho").Shapes("Text Box 16129").visible=true und dann den Text in der Tabelle Tacho bearbeiten.
Oder du fügst/ersetzt diesen Code in den Code der Tabelle Tacho ein:
errCatch:
For Each shp In Sheets("Tacho").Shapes
shp.Visible = msoFalse
Next
If Sheets("Eingaben").Range("B3") = "" Or Sheets("Eingaben").Range("B3") = 0 Then
FText = "Kennzahl für den Bereich B3 ist nicht vorhanden"
ElseIf Sheets("Eingaben").Range("B4") = "" Or Sheets("Eingaben").Range("B4") = 0 Then
FText = "Kennzahl für den Bereich B4 ist nicht vorhanden"
ElseIf Sheets("Eingaben").Range("B5") = "" Or Sheets("Eingaben").Range("B5") = 0 Then
FText = "Kennzahl für den Bereich B5 ist nicht vorhanden"
ElseIf Sheets("Eingaben").Range("B6") = "" Or Sheets("Eingaben").Range("B6") = 0 Then
FText = "Kennzahl für den Bereich B6 ist nicht vorhanden"
ElseIf Sheets("Eingaben").Range("B7") = "" Or Sheets("Eingaben").Range("B7") = 0 Then
FText = "Kennzahl für den Bereich B7 ist nicht vorhanden"
ElseIf Sheets("Eingaben").Range("B8") = "" Or Sheets("Eingaben").Range("B8") = 0 Then
FText = "Kennzahl für den Bereich B8 ist nicht vorhanden"
ElseIf Sheets("Eingaben").Range("B10") = "" Or Sheets("Eingaben").Range("B10") = 0 Then
FText = "Kennzahl für den Bereich B10 ist nicht vorhanden"
ElseIf Sheets("Eingaben").Range("B11") = "" Or Sheets("Eingaben").Range("B11") = 0 Then
FText = "Kennzahl für den Bereich B11 ist nicht vorhanden"
ElseIf Sheets("Eingaben").Range("B12") = "" Or Sheets("Eingaben").Range("B12") = 0 Then
FText = "Kennzahl für den Bereich B12 ist nicht vorhanden"
ElseIf Sheets("Eingaben").Range("B13") = "" Or Sheets("Eingaben").Range("B13") = 0 Then
FText = "Kennzahl für den Bereich B13 ist nicht vorhanden"
ElseIf Sheets("Eingaben").Range("B14") = "" Or Sheets("Eingaben").Range("B14") = 0 Then
FText = "Kennzahl für den Bereich B14 ist nicht vorhanden"
ElseIf Sheets("Eingaben").Range("B15") = "" Or Sheets("Eingaben").Range("B15") = 0 Then
FText = "Kennzahl für den Bereich B15 ist nicht vorhanden"
ElseIf Sheets("Eingaben").Range("B16") = "" Or Sheets("Eingaben").Range("B16") = 0 Then
FText = "Kennzahl für den Bereich B16 ist nicht vorhanden"
ElseIf Sheets("Eingaben").Range("B17") = "" Or Sheets("Eingaben").Range("B17") = 0 Then
FText = "Kennzahl für den Bereich B17 ist nicht vorhanden"
End If
With Sheets("Tacho").Shapes("Text Box 16129").TextFrame.Characters
.Text = Chr(10) & Chr(10) & Chr(10) & FText
.Font.Bold = True
.Font.ColorIndex = 3
End With
Sheets("Tacho").Shapes("Text Box 16129").Visible = True
End Sub
Gruß
Jochen

Anzeige
AW: schöner und kürzer...
05.03.2013 12:41:55
JoWE

errCatch:
For Each shp In Sheets("Tacho").Shapes
shp.Visible = msoFalse
Next
For i = 3 To 17
If Sheets("Eingaben").Range("B" & i) = "" _
Or Sheets("Eingaben").Range("B" & i) = 0 Then
FText = "Die Kennzahl / der Wert für den Bereich " & _
Chr(10) & "B" & i & Chr(10) & _
"in 'Eingaben' ist fehlerhaft oder nicht vorhanden!" & _
Chr(10) & "B" & i & " = ' " & _
Sheets("Eingaben").Range("B" & i) & " '"
End If
Next
With Sheets("Tacho").Shapes("Text Box 16129").TextFrame.Characters
.Text = Chr(10) & FText
.Font.Bold = True
.Font.ColorIndex = 3
End With
Sheets("Tacho").Shapes("Text Box 16129").Visible = True

Anzeige
AW: letzte....
10.03.2013 21:51:07
ete
Hallo Jochen,
leider hatte ich letzte Woche verschiedene Auswärtstätigkeiten und bin noch nicht zum Antworten gekommen. Dies will ich nun erledigen.
Vielen Dank für deine Hilfe, ich habe noch ein wenig daran rumgespielt und bin zu einer Lösung gekommen.
Nun möchte ich aber mehrere Tachoscheiben auf einem Blatt darstellen und die Fehlermeldung (n.v.- "Daten nicht verfügbar" bzw. n.r.- "Kennzahl für das Team nicht relevant") soll nur an der Tachoscheibe erscheinen, an der n.v. bzw. n.r. in der Eingabe steht. Die anderen Tachoscheiben sollen den tatsächlichen Wert anzeigen. Kann man das auch hinkriegen? Siehe Beispiel:
https://www.herber.de/bbs/user/84276.xls
Bis bald und
Gruß Etienne
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige