Hallo,
Ich kenne mich mit VBA leider garnicht aus. Dank einiger Beiträge habe ich aber schon einmal einen Anfang in Excel machen können. Jetzt komme ich aber nicht weiter. Deshalb wäre es toll, wenn ihr mir helfen könntet, um folgendes Problem zu lösen:
Ich möchte in Excel einen automatisierten Etikettengenerator bauen. Dafür habe ich in einer Exceldatei zwei Tabellen benutzt. Auf der ersten Tabelle befindet sich das Layout für die Etiketten (96 Stück), auf der Zweiten mehrere Logos, die wahlweise auf die Etiketten platziert werden müssen. Die Logos sind auf der Festplatte gespeichert und sollen in die Tabelle verlinkt werden. Da die Logos auf 96 Stellen müssen habe ich es so formuliert, dass wenn in einer Zelle "Logo1" steht, Logo1 auf diese Zelle gelegt wird. Das funktioniert schon mal:
Sub Logo()
Dim Zelle As Range
'---Bereich in "Tabelle1" ansprechen
For Each Zelle In Sheets("Tabelle1").UsedRange
If Zelle.Value = "Logo1" Then
With Sheets("Tabelle1").Pictures.Insert("Logo1.jpg")
'---Groesse von Logo
.Width = 8
.Height = 9.3
'---Positionierung von Logo in Zelle
.Top = Zelle.Top
.Left = Zelle.Left
End With
End If
Next Zelle
End Sub
Was ich jetzt noch machen möchte, ist dass man das obige Skript mit einer Checkbox ansteuern kann. Also, wenn die Checkbox aktiviert ist, soll Logo1 eingeblendet werden, und wenn die Checkbox deaktiviert ist, soll Logo1 ausgeblendet werden. Der Grund dafür ist, dass das Etikettenlayout allgemein einsetzbar sein soll für sowohl Etiketten mit Logo1, als auch ohne, oder eben mit anderen Logos, die ich mit anderen Checkboxes auf die selbe Weise aktivieren würde. Es sollte nach Möglichketz so etwa wie in diesem Skript funktionieren, das ich in einem Forum gefunden habe:
Private Sub CheckBox1_Click()
With ActiveSheet
Select Case .CheckBox1.Value
Case True
.Shapes("Picture 2").Visible = True
Case False
.Shapes("Picture 2").Visible = False
End Select
End With
End Sub
Es wäre wirklich super, wenn mir jemand zeigen könnte, wie man die zwei Sachen verbinden kann.
Grüße, Sebastian
|