PDA

Vollständige Version anzeigen : Übersetzer


okais
25.08.2017, 12:04
Hallo,
ich habe eine Übersetzter-Makro geschrieben. Diese generiert mir Schaltflächen der einzelnen Sprachen im Reiter Add-Ins. Wir diese betätigt werden alle Begriffe des Sheets in die jeweilig Sprache übersetzt.
Nun ist das Problem folgendes, dass diese Schaltflächen in jeder Excel-Datei angezeigt werden. :boah: Sie sollen aber nur in dieser einen Datei angezeigt werden.
Hat jemand einen Vorschlag wie ich dieses Makro abändern kann, dass die Schaltflächen nicht in jeder Excel-Datei angezeigt werden?

MfG
Okais

Jonas0806
25.08.2017, 12:07
Hallo Okais,

im AddIn:

if activeworkbook.name = "DeinWorkbook.xlsx" then
'ausführen
end if

Ist allerdings nicht die sicherste Methode, da der Name ja geändert werden kann.

Hajo_Zi
25.08.2017, 12:10
benutze
Option Explicit

Private Sub Workbook_Activate()

End Sub

Private Sub Workbook_Deactivate()

End Sub


zum Löschen und erstellen.

<img src="http://Hajo-Excel.de/images/grusz1.gif" align="middle" height="40" alt="Grußformel"><a href="http://Hajo-Excel.de/index.htm"><img border="0" src="http://Hajo-Excel.de/images/logo_hajo3.gif" align="middle" height="40" alt="Homepage"></a>

okais
25.08.2017, 12:54
Hey Hajo,
dein Vorschlag sieht vielersprechend aus.
Könntest du deinen Code in meinen Integrieren, da ich bisschen überfordert bin wo genau das rein geschrieben wird. :/ #neuling

[CODE]/Option Explicit
Private cBar As CommandBar
Private cBarCtrl As CommandBarControl
Sub Set_ComBar()
On Error Resume Next
Call Del_ComBar
With Application
With .CommandBars.Add(Name:="Versuch")
.Visible = True
With .Controls.Add(Type:=msoControlButton)
.Style = msoButtonIconAndCaption
.FaceId = 1
.Caption = "Deutsch"
.OnAction = "xButtonGer"
End With
With .Controls.Add(Type:=msoControlButton)
.Style = msoButtonIconAndCaption
.FaceId = 1
.Caption = "Englisch"
.OnAction = "xButtonEn"
End With
With .Controls.Add(Type:=msoControlButton)
.Style = msoButtonIconAndCaption
.FaceId = 1
.Caption = "Spanisch"
.OnAction = "xButtonSpa"
End With
With .Controls.Add(Type:=msoControlButton)
.Style = msoButtonIconAndCaption
.FaceId = 1
.Caption = "Chinesisch"
.OnAction = "xButtonCh"
End With
End With
.Calculation = xlCalculationAutomatic
End With
End Sub

Sub Del_ComBar()
On Error Resume Next
With Application
For Each cBar In .CommandBars
If cBar.Name = "Versuch" Then
cBar.Delete
Exit Sub
End If
Next cBar
End With
End Sub
[CODE]

Tausend Dank!!!

Hajo_Zi
25.08.2017, 12:59
das erste Makro in der ersten Prozedur, das zweite in der zweiten aufrufen.
Das erste hast Du ja schon bei Open aufgerufen.

starte den VBA Editor (Alt+F11), Bild sollte zweigeteilt sein ansonsten Strg+R, Doppelklick auf Deine Datei, Doppelklick auf DieseArbeitsmappe, Code ins rechte Fenster kopieren, VBA Editor schließen.
Das Makro wird automatisch gestartet.
Der Code wirkt in der gesamten Datei.

Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.

Ein Nachbau sieht meist anders aus als das Original. <B>Darum sollte das Original verlinkt werden.</b>

Der Name einer hochgeladenen Mappe wird im Beitrag automatisch angezeigt, sodass es bei Verwendung von aussagekräftigen Namen leichter fällt, sie später im Ablageordner wiederzufinden und sie gedanklich einem bestimmten Thema zuzuordnen. Namen wie Test, Mappe, Beispiel usw. sind so allgemein, dass eine Zuordnung zu einem Thema unmöglich gemacht wird.


<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>