Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
960to964
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
960to964
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Diagramme auflisten und ein bestimmtes markieren

Diagramme auflisten und ein bestimmtes markieren
22.03.2008 10:21:01
Friedrich
Liebe ForumsteilnehmerInnen,
ich hab' da ein Problem, das meine Kenntnisse bei weitem übersteigt und auch kurz beschrieben werden muss.
Die Personen, die mit dem Makro/AddIn arbeiten werden, verwenden benutzerdefinierte Diagramme, d. h. die Diagramme müssen nicht formatiert werden. Sie können aber nur mit der Tastatur arbeiten, da sie blind bzw. schwer sehbehindert sind.
Ich habe ein Makro geschrieben bzw. zusammenkopiert und als AddIn gespeichert, mit dem es möglich ist, ein Diagramm an einer angegebenen Position abzulegen (z. B. A14:E35). Dabei ist mir aufgefallen, dass das nur dann funktioniert, wenn ich das Diagramm via Bearbeiten/Gehe zu/Objekte markiere. Der Bereich für das Diagramm wird mit Application.InputBox abgefragt.
Frage 1: Wie kann ich alle ev. vorhandenen Markierungen aufheben und dann das Diagramm mit dem Makro in der richtigen Form markieren?
Frage 2: Wenn es auf einem Sheet mehrere Diagramme gibt: Gibt es eine Möglichkeit eine Liste mit den Diagrammen auszugeben (die könnten ruhig Chart1, Chart2, ... heißen), um dann mit der Tastatur das richtige Diagramm anzugeben und zu markieren.
Würdet Ihr das AddIn mit einem Button aufrufen (kann ich dem Button dann eine Tastenkombination zuweisen) oder würdet Ihr gleich ein Menü anlegen (es könnten ja weitere AddIns dazukommen) - das sich, wenn das AddIn neu eingespielt wird, aktualisiert.
Die Vorgangsweise mit dem Button hätte ich fertig, die Tastenkombination fehlt noch. Ich nehme an, dass - wenn ich einem Button eine Tastenkombination zuweisen kann - das auch bei Menüeinträgen möglich ist.
Ich würde mich freuen, wenn jemand von Euch eine Antwort parat hätte. Ich möchte auch betonen, dass ich mich mit dem Problem in meiner Freizeit beschäftige und kein Geld dafür bekomme.

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

Betreff
Datum
Anwender
Anzeige
AW: Diagramme auflisten und ein bestimmtes markier
22.03.2008 11:18:00
Beverly
Hi Friedrich
zu Frage 1: meinst du damit, die Markierung des Diagramms aufheben? Das geht mit dieser Codezeile

ActiveWindow.Visible = False


Mit welchem Code erstellst du die Diagramme? Man kann ein Diagramm auch als Objekt ansprechen, dann wird es beim Erstellen nicht selektiert.
zu Frage 2:


Sub dias_auflisten()
Dim chDiagramm As ChartObject
For Each chDiagramm In ActiveSheet.ChartObjects
MsgBox chDiagramm.Name
Next chDiagramm
End Sub


Weshalb willst du dem Button eine Tastenkombination zuweisen - du kannst doch gleich dem betreffenden Makro die Tastenkombination zuweisen.



Anzeige
AW: Diagramme auflisten und ein bestimmtes markier
22.03.2008 11:52:42
Friedrich
Hallo Karin,
danke für die Antwort. Das Deaktivieren brauche ich, weil die Leute das Diagramm "ganz normal" erstellen. Aus der Sicht von blinden Personenen sieht das so aus: z. B. STRG + G, A1:A14;C1:C14 (Datenbereich markieren), dann geht's mit ALT + E, D, STRG + TAB (Benutzerdefinierte Typen), ALT + B, TAB und Auswahl des Diagramms und ALT + F weiter. Das Diagramm ist dann erstellt, aber eben markiert, dann funktioniert aber mein Skript nicht (das ActiveWindow.Visible = False habe ich jetzt schon drinnen):

Sub diagramm_groesse_position()
ActiveWindow.Visible = False
Dim bereich As Range
Dim diagramm As ChartObject
Set bereich = Application.InputBox(Prompt:= _
"Welchen Bereich soll das Diagramm überdecken (z.B.: a12:e20)? ", _
Title:="Diagramm: Größe und Position", Type:=8)
With ActiveSheet
On Error GoTo FehlerMeldung
Set diagramm = ActiveChart.Parent
On Error GoTo 0
End With
diagramm.Height = bereich.Height
diagramm.Width = bereich.Width
diagramm.Top = bereich.Top
diagramm.Left = bereich.Left
Set bereich = Nothing
FehlerMeldung:
If Err.Number = 91 Then
MsgBox "Sie haben kein Diagramm ausgewählt!", _
vbOKOnly, "Diagrammauswahl"
End If
End Sub


Momentan gibt es eine Fehlermeldung, wenn kein Diagramm ausgewählt ist. Das markieren des Diagramms erfolgt dann mit STRG + G, ALT + I (für Inhalte), J (für Objekte). Damit sind aber, wenn es mehr als ein Diagramm auf dem Sheet gibt, alle Diagramme markiert. Genau hier bräuchte ich die Auswahlmöglichkeit, welches Diagramm konkret verändert werden soll.
Einen Ansatzpunkt hast Du mir schon geliefert.
Danke einstweilen
Fritz

Anzeige
AW: Diagramme auflisten und ein bestimmtes markier
22.03.2008 13:02:00
Beverly
Hi Fritz,
ich arbeite mit Excel2002, erhalte bei deinem Code (ohne die erste Zeile) aber keine Fehlermeldung, wenn ein Diagramm schon markiert ist. Durch den festgelegten Typ der InputBox wird doch auch die Eingabe/Markierung eines Tabellenbereichs erwartet.


AW: Diagramme auflisten und ein bestimmtes markier
22.03.2008 13:13:00
Friedrich
Hi Karin,
mit Deiner Hilfe bin ich beinahe fertig. Ich hab' meinen Code quasi in Deinen integriert, die msgbox mit JA/Nein ausgestattet und jetzt kann ich der Reihe nach die Diagramme anpassen. Es war nur ein Problem dabei: ActiveWindow.Visible = False kann ich nicht einsetzen, da die Blinden, wenn der ScreenReader auszuckt, gerne ein paarmal Esc drücken. Dann ist auch nix mehr markiert und mir wird das Fenster ausgeblendet. Ich stelle die bei Aufruf des Scripts halt in die Zelle A1, das genügt.
Eines bleibt mir offen: Wie hast Du das gemeint mit: Ich könnte dem AddIn direkt eine Tastenkombination zuweisen? Ich bin da ein ziemlicher Anfänger und weiß nur, dass es so nicht geht:
Option Explicit

Sub Workbook_Open()
Application.OnKey "^ü", "diagramm_groesse_position"
End Sub



Sub diagramm_groesse_position()
Range("A1").Select
Dim bereich As Range
Dim diagramm As ChartObject
Dim ergebnis As String
For Each diagramm In ActiveSheet.ChartObjects
ergebnis = MsgBox("Wollen Sie das Diagramm " & diagramm.Name & " ändern?", _
vbYesNo + vbQuestion)
If ergebnis = vbYes Then
diagramm.Select
Set bereich = Application.InputBox(Prompt:= _
"Welchen Bereich soll das Diagramm überdecken (z.B.: a12:e20)? ", _
Title:="Diagramm: Größe und Position", Type:=8)
diagramm.Height = bereich.Height
diagramm.Width = bereich.Width
diagramm.Top = bereich.Top
diagramm.Left = bereich.Left
Set bereich = Nothing
End If
Next diagramm
End Sub


Es ist mir bewußt, dass es elegantere Lösungen geben kann. Ich strecke mich halt nach meiner Decke.
Danke
Fritz

Anzeige
AW: Diagramme auflisten und ein bestimmtes markier
22.03.2008 13:38:41
Beverly
Hi Fritz,
du hast dir deine Frage doch schon selbst beantwortet, indem du im Workbook_Open Ereignis das Makro bereits einer Tastenkombination zuweist.
Zitat: Es ist mir bewußt, dass es elegantere Lösungen geben kann.
Ich denke, es kommt nicht unbedingt auf die "Eleganz" eines Codes an sondern eher darauf, dass er das macht, was der Programmierer will. Also stelle dein Licht nicht unter den Scheffel :-)))
Versuche mal diesen etwas angepassten Code

Sub diagramm_groesse_position()
Dim bereich As Range
Dim diagramm As ChartObject
Dim ergebnis As String
For Each diagramm In ActiveSheet.ChartObjects
ergebnis = MsgBox("Wollen Sie das Diagramm " & diagramm.Name & " ändern?", _
vbYesNo + vbQuestion)
If ergebnis = vbYes Then
Set bereich = Application.InputBox(Prompt:= _
"Welchen Bereich soll das Diagramm überdecken (z.B.: a12:e20)? ", _
Title:="Diagramm: Größe und Position", Type:=8)
diagramm.Height = bereich.Height
diagramm.Width = bereich.Width
diagramm.Top = bereich.Top
diagramm.Left = bereich.Left
Set bereich = Nothing
End If
Next diagramm
End Sub




Anzeige
AW: Diagramme auflisten und ein bestimmtes markier
22.03.2008 13:50:00
Friedrich
Hi Karin,
naja, wenn zwei an einem Problem arbeiten, kommt gerne dasselbe raus. Ich hab' den Code jetzt so wie Du (ohne Deiner Antwort).
Nur: Das mit der Tastenkombination klappt so nicht, da das ganze eine xla wird. D. h. wenn ich das Ding einmal aus der Entwicklungsumgebung mit F5 starte, dann klappt die Tastenkombination. Wenn ich aber eine neue Datei anlege und die Tastenkombination aufrufe, dann geht da gar nichts.
Kannst Du mir nochmal einen Tipp geben?
Fritz

AW: Diagramme auflisten und ein bestimmtes markier
22.03.2008 14:33:36
Beverly
Hi Fritz,
weise die Tastenkombination direkt von Hand dem Makro zu, dann steht es auch zur Verfügung, wenn die Arbeitsmappe ein Add-In ist.


Anzeige
AW: Diagramme auflisten ... Fertig
22.03.2008 18:01:22
Friedrich
Hi Karin,
danke für Deine Hilfe. Hab' jetzt noch etwas "herumoptimiert", jetzt scheint's zu klappen. Ich schick' das Ganze mal den UserInnen zum Testen.
Fritz

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige