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

Beates Add-Inn erstellt Symbolleiste, wie?

Beates Add-Inn erstellt Symbolleiste, wie?
02.08.2008 12:19:53
Reinhard
Hallo Wissende,
Beate hat hier:
https://www.herber.de/forum/archiv/540to544/t543914.htm#543914
ein Add-In erstellt (xla) erstellt, daß man hier runterladen kann:
http://users.quick-line.ch/ramel/Files/Spalte-Zeile_in_cm.XLA
Es funktioniert auch gut.
Nur ich verstehe absolut nicht wo da der Code versteckt ist, der die neue Symbolleiste "Spalte-Zeile" erstellt und ihren zwei Schaltflächen die Makros zuweist.
Im Code der xla ist nur der nachstehende Code sichtbar.
Die Symbolleiste wird auch erstellt wenn man mit deaktivierten Makros die xla öffnet.
Wie kann sie das gemacht haben?
Danke ^ Gruß
Reinhard
In Diese Arbeitsmappe:
Option Explicit Private Sub Workbook_AddinInstall() Application.CommandBars("Spalte-Zeile").Visible = True End Sub Private Sub Workbook_AddinUninstall() Application.CommandBars("Spalte-Zeile").Visible = False End Sub


in Modul1:


Option Explicit
Sub Spaltenbreite()
'Grundlagen im folgenden KB-Artikel:
'http://support. _
microsoft.com/default.aspx?scid=kb;de;504562
Dim sBreite As Single
Dim sAktuell As Single
Dim strAktuell As String
Dim strText As String
Dim strCaption As String
Dim strAntwort As String
Dim sExcelSizeFaktor As Single
sExcelSizeFaktor = Application.StandardFontSize / 10
On Error Resume Next
sAktuell = (Selection.ColumnWidth + 0.71) / 5.1425 * sExcelSizeFaktor
' wenn unterschiedlich breite Spalten ausgewählt werden:
If Err.Number  0 Then
Err.Clear
sAktuell = (ActiveCell.ColumnWidth + 0.71) / 5.1425 * sExcelSizeFaktor
End If
On Error GoTo 0
strAktuell = Format(sAktuell, "###0.00")
strText = "Aktuelle Spaltenbreite: " & strAktuell & " cm." & vbLf _
& "Geben Sie die gewünschte Spaltenbreite für die " _
& "aktuelle Spalte oder Markierung in cm ein:"
strCaption = "Neue Spaltenbreite festlegen "
strAntwort = Excel.Application.InputBox(strText, strCaption, strAktuell, , , , , 1)
If strAntwort Then
sBreite = (-0.71 + 5.1425 * CSng(strAntwort) / sExcelSizeFaktor)
If sBreite >= 0 And sBreite 'http://support. _
microsoft.com/default.aspx?scid=kb;de;504562
Dim sHoehe As Single
Dim sAktuell As Single
Dim strAktuell As String
Dim strText As String
Dim strCaption As String
Dim strAntwort As String
Dim sExcelSizeFaktor As Single
sExcelSizeFaktor = Application.StandardFontSize / 10
On Error Resume Next
sAktuell = Selection.RowHeight / 29.5
' wenn unterschiedlich hohe Zeilen ausgewählt werden:
If Err.Number  0 Then
Err.Clear
sAktuell = ActiveCell.RowHeight / 29.5
End If
On Error GoTo 0
strAktuell = Format(sAktuell, "###0.00")
strText = "Aktuelle Zeilenhöhe: " & strAktuell & " cm." & vbLf _
& "Geben Sie die gewünschte Zeilenhöhe für die " _
& "aktuelle Zeile oder Markierung in cm ein:"
strCaption = "Neue Zeilenhöhe festlegen"
strAntwort = Excel.Application.InputBox(strText, strCaption, strAktuell, , , , , 1)
If strAntwort Then
sHoehe = CSng(strAntwort) * 29.5
If sHoehe >= 0 And sHoehe  "" Then
sBreite = CSng(strAntwort)
Selection.ColumnWidth = -0.71 + 5.1425 * sBreite
End If
End Sub


10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Beates Add-Inn erstellt Symbolleiste, wie?
02.08.2008 12:30:00
Hajo_Zi
Hallo Reinhard,
ich vermute mal die Symbolleiste ist von Hand erstellt und an die Datei gebunden.

AW: Beates Add-Inn erstellt Symbolleiste, wie?
02.08.2008 13:27:38
Reinhard
Hallo Hajo,
aber in anderen Mappen ist sie auch vorhanden?
Wie macht eine Symolleiste eine Mappe binden?
Mit Ansicht--Symbolleisten--Neu gilt die neue Symbolleiste wohl für alle Mappen.
Gruß
Reinhard

AW: Beates Add-Inn erstellt Symbolleiste, wie?
02.08.2008 13:30:00
Hajo_Zi
Hallo Reinhard,
bei den anderen Dateien ist die XLA Datei doch auch auf?
Rechte Maustttaste im Symbolleistenbereich, Anpassen, Register Symbolleisten, Symbollleiste auswählen und Anfügen.
Gruß Hajo

Anzeige
AW: Beates Add-Inn erstellt Symbolleiste, wie?
02.08.2008 18:13:59
Hajo_Zi
Hallo Uwe,
bei mir steht das korrekte in der Zelle. Ich sehe jedenfalls keinenm Fehler.
 F
22#BEZUG!

Formeln der Tabelle
ZelleFormel
F22=WENN(DateingBEW!W83="(SO)";"";"SO")


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Hajo

Anzeige
Add-In Spalte-Zeile_In_Cm
02.08.2008 13:50:00
Beate
Hallo Reinhard,
zunächst mal: Das Add-In "Spalte-Zeile_In_Cm" ist von Thomas Ramel, nicht von mir. Ich hatte es nur verlinkt.
Wenn du das Add-In installiert und aktiviert hast, dann wird die Symbolleiste automatisch eingeschaltet.
Sie bleibt so lange sichtbar (also in allen Exceldateien), bis das Add-In deaktiviert wird.
Wie man ein Add-In installiert, aktiviert und deaktiviert ist hier beschrieben:
Add-In - Installieren, Aktivieren, Entfernen und mehr
Gruß,
Beate

AW: Beates Add-Inn erstellt Symbolleiste, wie?
03.08.2008 10:19:50
Thomas
Grüezi Reinhard und alle zusammen
Für das AddIn habe ich damals eine eigene kleine Symbolleiste angelegt und die Buttons mit eigenen Grafiken versehen.
Über Extras/Anpassen/Register; 'Symbolleisten'/[Anfügen]
ist diese dann an die Mappe gebunden worden.
Im AddInInstall/Uninstall wird die Symbolleiste dann einfach ein- respektive ausgeblendet, das ist dann auch schon alles.
Dies ist eine Technik die relativ einfach und vor allem ohne grösseren VBA-Kenntnisse umsetzbar ist.
Sie ist daber auch etwas weniger flexibel als wenn die Symbolleiste von Grund auf per VBA erzeugt wird.
Ist beim User beistpielsweise bereits eine gleichnamige Symbolleiste vorhanden wird jene angezeigt und nicht die, die mit der Mappe mitgebracht wird. Ändert sich daher z.B. in einer neueren Version die Symbolleiste, muss zuerst von Hand die bestehende gelöscht werden, damit die Symbolleiste aus der .XLB-Datei entfernt wird, und dann erst die Mappe (das AddIn) mit der neuen Symbolleiste geöffnet werden.
Mit freundlichen Grüssen
Thomas Ramel
--
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2003 SP-3]

Anzeige
@ Thomas
03.08.2008 12:39:40
Beate
Herzlichen Dank für die Erläuterung, Thomas!

AW: Thomas' Add-Inn erstellt Symbolleiste, wie?
03.08.2008 15:08:50
Reinhard
Grüezi Thomas und natürlich auch @beate, Hajo,
mir war das neu und es behagt mir absolut nicht daß ich beim Öffnen einer Datei keinerlei Kontrolle habe was die Datei macht. Wenn da einer 50.000 Symbolleisten eingebaut hat und ich habe keine Sicherung meiner xlb, oder weiß gar nicht was das ist, habe aber mit viel Zeitaufwand mir meine Symbolleisten gepflegt und angepasst so muß ich mangels Vba-Kenntnissen wohl alle 50.000 Smbolleisten manuell löschen :-(
M.E. müßt da ein Hinweis kommen, genauer die Abfrage ob ich es zulassen will daß das Add-In xyz.xla eine Symbolleite anlegen darf.
Aber MS und Sicherheit *seufz* Mir fällt dazu spontan dieses eine Steuerelement ein daß man in Tabellen einbauen kann. Ohne jedweden Hinweis wird dort ja auch "Fremdcode" ausgeführt wenn man auf das Steuerelement klickt. Makros sind nicht vorhanden, man ahnt also erstmal nix davon daß da überhaupt Code ausgeführt wird.
Da ist man auch darauf angewiesen zu glauben daß MS dafür gesorgt hat daß der Fremdcode nichts auf meiner Festplatte machen darf. Naja, da hab ich so meine Zweifel...
Muß mal schauen was das genau war, Moment bitte......ah, da isses, funktioniert mit SWf-Player:
http://www.system-hug.ch/system-hug/edv_system-hug.htm , dort auf Iq-Test klicken. ist eine xls Datei von 600 KB mit einer Variante von einem Boot und Kohlkopf, Schäfer, Schaf und Wolf.
Ansonsten ist das mit der Symbolleiste natürlich eine sehr elegante Lösung und erspart Code.
Dankeschön für eure Bemühungen
Gruß
Reinhard

Anzeige
AW: Thomas' Add-Inn erstellt Symbolleiste, wie?
03.08.2008 18:03:00
Thomas
Grüezi Reinhard
Hmmm, ich denke, Du siehst hier etwas zu schwarz.
Die .XLB wird nur temporär geändert und da bloss eine neue Symbolleiste erstellt wird, kannst Du sie auch ohne Aufwand wieder löschen. Dabei bleiben auch keine Überbleibsel zurück.
Naja, 50'000 Stück wären dann schon was, aber erstellt und an die Mappe angefügt wollen sie auch erst mal sein....
Des weiteren - auch wenn bei der Verwendung von VBA-Code die Meldung erscheint ob die Makros aktiviert werden sollen - wer garantiert dir, dass der Schreiber mit bösen Absichten nicht ein 'Fromat C:' im Workbook_Open() eingebaut hat? Nach dem Aktivieren der Makros wird dieses ausgefühhrt - Du hast es ja letztlich erlaubt.....
Die Excel-Datei ist für die genannten swf-Dateien ja nur der Container, der ohne entsprechenden swf-Player auch nicht läuft.
Ich denke ein wasserdichtes System ist auch kaum zu erstellen - und Excel ist da meilenweit davon entfernt, soll doch VBA eigentlich 'nur' Routine-Arbeiten automatisieren.

Anzeige
AW: Thomas' Add-Inn erstellt Symbolleiste, wie?
03.08.2008 22:23:00
Reinhard
Grüezi Thomas,
:::Die .XLB wird nur temporär geändert und da bloss eine neue Symbolleiste erstellt wird, kannst Du sie
:::auch ohne Aufwand wieder löschen. Dabei bleiben auch keine Überbleibsel zurück.
ja, aber wenn ich
a) gar nicht weiß daß es dafür nur der Löschung der xlb bedarf?
b) 3 Stunden gebraucht habe um meine Symbolleisten so anzupassen wie ich sie gerne habe
dann lade ich diese xla ...
:::Naja, 50'000 Stück wären dann schon was, aber erstellt und an die Mappe angefügt wollen sie auch erst
::: mal sein....
? Es gibt Makros und pöse Leute :-)
:::Des weiteren - auch wenn bei der Verwendung von VBA-Code die Meldung erscheint ob die Makros
:::aktiviert werden sollen - wer garantiert dir, dass der Schreiber mit bösen Absichten nicht ein 'Fromat C:'
:::im Workbook_Open() eingebaut hat? Nach dem Aktivieren der Makros wird dieses ausgefühhrt - Du hast
:::es ja letztlich erlaubt.....
Wenn man Makros zuläßt ist man selbst schuld, ist ja wie in Dos, wenn ich da eingebe format c: /s kommt immerhin die Abfrage blabla wollenSie das wirklich tun, wer da auf Enter oder J drückt, naja, er hatte es in der hand.
Wenn ich aber Makros deaktiviere möchte ich bitteschön daß da meinem PC nichts geschieht.
:::Die Excel-Datei ist für die genannten swf-Dateien ja nur der Container, der ohne entsprechenden :::swf-Player auch nicht läuft.
Da kenne ich mich überhaupt nicht aus. Ich las nur im Internet, dies wäre ein Sicherheitsloch. Ich weiß weder wie man diese swf programmiert, noch mit welcher Programmiersprache und wie "mächtig" die ist.
Ist sehr vergleichbar damit, daß ich weiß wie man in "Bildern" Bytes von Code verstecken könnte, was ich aber Null weiß ist wie man den dann startet.
Also Paranoia habe ich garantiert ncht, ich lad mir jedes jpg-Bild runter, wenn da Code drin steht ist mir das wurscht, mein Irfanview wird ihn sicher nicht auführen.
:::Ich denke ein wasserdichtes System ist auch kaum zu erstellen
Ginge schon, aber ich habe keine Lust nach Redmont umzuziehen unddu und Marion auch nicht, sonst wäre die Kleinigkeit in 2 Jahren erledigt :-)
::: - und Excel ist da meilenweit davon entfernt, soll doch VBA eigentlich 'nur' Routine-Arbeiten automatisieren.
stimmt, da gabs früher was mit Tabellenkakulation oder so, überschaubares Gebiet...
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige