Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1396to1400
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

Wappen automatisch in Spielplan einfügen

Wappen automatisch in Spielplan einfügen
05.12.2014 10:18:31
Stefan
Hallo zusammen,
ich habe ein Problem wo meine Basiskenntnisse in Exel überhaupt nicht ausreichen.
Ich habe einen Spielplan erstellt und möchte jetzt gerne neben den Namen der Mannschaften das Vereinswappen angezeigt bekommen.
Wie folgt:
A1 = Wappen BVB B1 = BVB - D1 = Bayern E1= Wappen Bayern
usw.
Die Wappen liegen alle auf dem Computer unter: Users/Rabe/pictures
auf A1 oder D1 kann natürlich auch Barcelona stehen oder Real.
Das Programm soll dann zu dem Namen das Richtige Bild einfügen in .PNG
Ist das über eine excel VBA Programmierung möglich ? und wie gehe ich da vor ?
Ach und ich Arbeite mit einem MAC EXEL 2011.
Vielleicht kann mir einer von euch helfen !?
Mfg
Stefan

29
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wappen automatisch in Spielplan einfügen
05.12.2014 10:46:12
AndrRo
Hallo Stefan,
ja es möglich,
1.) da sich die Wappen nach dem Namen richten sollen, ist es nur über VBA realisierbar.
2.) die Wappen werden als Bilder eingefügt, meines Wissen geht .png nicht, die musst du in .jpg ändern.
3.) die Dateinamen der Wappen sollte den Namen in ihrer Schreibweise den Namen in der Zelle gleichen.
(nicht BVB.jpg und in der Zelle steht "BVB Dortmund")
4.) da du keine Datei hochgeladen hast, kann ich nur sagen, wie ich das realisiert habe, wobei ich nur ein Wappen eingelesen habe, wenn sich eine bestimmte Zelle geändert hat:
Da ich den Code mit Excel 2002 geschrieben habe, kann es sein dass er nur noch bedingt funkioniert:
Private Sub Worksheet_Calculate()
on error resume next
ActiveSheet.Shapes("Wappen").Delete
on error goto DFB
ActiveSheet.Pictures.Insert(left(activeworkbook.FullName, instrrev(activeworkbook.FullName,"\")) _
& "Wappen\" & Range("C2").Value & ".jpg").Select
Selection.Name = "Wappen 1"
'Anpassung Größe und Position
Selection.ShapeRange.IncrementLeft 303
Selection.ShapeRange.ScaleWidth 1.22, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 1.22, msoFalse, msoScaleFromTopLeft
Exit sub
DFB:     'DFB-Wappen wird geladen, wenn kein Wappen gefunden wurde
ActiveSheet.Pictures.Insert(left(activeworkbook.FullName, instrrev(activeworkbook.FullName,"\")) _
& "Wappen\DFB.jpg").Select
Selection.Name = "Wappen 1"
'Anpassung Größe und Position
Selection.ShapeRange.IncrementLeft 303
Selection.ShapeRange.ScaleWidth 1.22, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 1.22, msoFalse, msoScaleFromTopLeft
End Sub
gruß
AndrRo

Anzeige
AW: Wappen automatisch in Spielplan einfügen
05.12.2014 10:51:41
AndrRo
Selection.Name = "Wappen 1" muss Selection.Name = "Wappen" heißen

AW: Wappen automatisch in Spielplan einfügen
05.12.2014 11:36:14
Stefan
Hallo AndrRom,
erstmal vielen vielen Dank ! für deine schnelle Antwort.
Aber da ich nicht viel Kenntnisse besitze was diese Programmierung angeht muss ich dich nochmal nerven :-).
Ich wollte die die Exel Datei hochladen damit du dir ansehen kannst was ich meine.
Eventuell kann ich Sie dir per mail senden ?
Stefan

AW: Wappen automatisch in Spielplan einfügen
05.12.2014 12:56:41
Stefan
Ich habe jetzt vieles versucht aber so wirklich funktioniert es nicht.
hat sonst noch einer ne Idee ?
Ich könnte die Tabelle auch per mail senden.

Anzeige
AW: Wappen automatisch in Spielplan einfügen
05.12.2014 13:30:34
yummi
Hallo Stefan,
ohne Tabelle schwierig, aber mal als Idee:
Leg auf einem Extra Sheet eine Tabelle deiner Vereine an (SpalteA) und in der nächsten Spalte legst du die entsprechenden Dateinamen an die du laden willst.
Dann kannst Du dir für Change deienr Zellen ein Makro der Form aufrufen:
Suche Vereinsnamen in neuer Tabelle und lade entsprechende Datei in die zelle wo Du es brauchst.
Falls Du mit dem VBA Code Probleme hast lad doch mal eine abgespeckte Datei hoch mit Markierung wo du das Wappen dargestellt haben willst.
Gruß
yummi

AW: Wappen automatisch in Spielplan einfügen
05.12.2014 13:36:13
Stefan
Hallo Yummi,
ich würde ja gerne die Datei hochladen, leider geht es aber nicht.
kann ich dir die Datei mal per Mail senden ? da steht dann auch genau wo die Wappen hin sollen.
Stefan

Anzeige
AW: Wappen automatisch in Spielplan einfügen
05.12.2014 13:42:59
yummi
Hqallo Stefan,
kann von hier aus nicht auf meine mails zugreifen.
Woran liegt es denn, dass Du nicht hochladen kannst?
Gruß
yummi

AW: Wappen automatisch in Spielplan einfügen
05.12.2014 13:46:55
Stefan
keine Ahnung........ ich kann keine Datei auswählen !? gehen hier nur bestimmte Formate ?

,,,,das gelesen?
05.12.2014 13:51:31
robert
Datei-UploadHOME | EXCEL-CD | ZURÜCK
Vorsicht: Bitte achten Sie darauf, dass Sie keine sensiblen Daten auf den Server stellen. Die hochgeladene Datei kann - auch noch nach Jahren - von jedermann downgeladen werden.
Die Größe der Datei ist auf etwa 300 KB begrenzt, bitte beachten. Die hochzuladende Datei darf sich nicht in einem Verzeichnis mit einem Leerzeichen im Namen oder mit einer sehr grossen Pfadtiefe befinden. Zudem darf die Datei selbst keine Leerzeichen im Namen beinhalten. Wenn der Upload nicht funktioniert, verschieben Sie die Datei in ein Root-Verzeichnis wie z.B. C:\ und versuchen es noch einmal.

Anzeige
AW: ,,,,das gelesen?
05.12.2014 13:52:35
Stefan
ja hab ich gelesen.

AW: ,,,,das gelesen?
05.12.2014 13:59:22
yummi
excel formate werden alle unterstützt + zip
wenn du auf file upload klickst und danach auf Durchsuchen geht kein auswhlfenster auf?

AW: ,,,,das gelesen?
05.12.2014 14:01:54
Stefan
Doch klar kann aber keine Datei auswählen.
Habe echt alles versucht
wenn ich die Datei per Mail schicke könntest du eventuell später mal reinschauen ?

AW: ,,,,das gelesen?
05.12.2014 14:12:52
yummi
sry nein nur über diesen server

AW: ,,,,das gelesen?
05.12.2014 14:17:04
Stefan
Ok schade ...... trotzdem danke
Kann mir vielleicht sonst einer Helfen !? Ich versuche es schon seit Tagen aber ohne erfolg.

AW: ,,,,das gelesen?
05.12.2014 14:39:10
Stefan
Ich hab es doch noch hinbekommen.
Ich hoffe einer von euch hat ne Lösung :-)
https://www.herber.de/bbs/user/94226.xls
Stefan

Anzeige
AW: ,,,,das gelesen?
08.12.2014 10:41:24
yummi
Hallo Stefan,
wann du zeichnen willst überlasse ich dir ;-) Hier mal eine Funktion, die dir in die Zelle die Du angibst eine Grafik zeichnet.

function GraphicfileInZelleEinfuegen(lngZeile As Long, lngSpalte As Long, strDatei as string,  _
Optional strPfad As String = "")
Dim strPfad As String
Dim lngZeile As Long
Dim wksTabelle As Worksheet
Dim shpNeu As Object
lngSpalte = 3 ' =C
Set wksTabelle = ActiveWorkbook.Worksheets("Ergebniseingabe")
If strPath = "" Then
strPfad = ActiveWorkbook.Path
End If
strDatei = "Fahne_D.png"
If Right(strPfad, 1)  "\" Then strPfad = strPfad & "\"
Set shpNeu = wksTabelle.Pictures.Insert(strPfad & strDatei)    'evtl noch Abfrage ob Datei ü _
berhaupt vorhanden
shpNeu.Top = wksTabelle.Rows(lngZeile).Top
shpNeu.Height = wksTabelle.Rows(lngZeile).Height
shpNeu.Left = wksTabelle.Columns(lngSpalte).Left
shpNeu.Width = wksTabelle.Columns(lngSpalte).Width * 5   'hier könntest Du auch über den  _
Range abfragen wieviel verbundene Zellen betroffen sind und es so variabel machen
End Sub
Gruß
yummi

Anzeige
AW: ,,,,das gelesen?
08.12.2014 12:08:34
Stefan
Hallo yummi,
ich möchte nicht Zeichnen :-))) ich suche einfach die Wappen der Mannschaften in der Tabelle bei google als .jpg........... hab nur keine Bilder in die Datei eingefügt weil sie sonst was groß ist.
Deine Funktion füge ich jetzt einfach ein ? gebe den Pfad an wo die Bilder liegen und dann sollte das Funktionieren ?
Kommt dir wahrscheinlich was blöde vor :-) aber ich hab echt keine Ahnung von Makros.
Stefan

AW: ,,,,das gelesen?
08.12.2014 12:35:11
yummi
Hallo Stefan,
ok dann sag mir wie die Zuordnung von Verein zu Wappendateiname zustande kommen soll, dann mach ich dir das
Gruß
yummi

Anzeige
AW: ,,,,das gelesen?
08.12.2014 14:27:17
yummi
Hallo Stefan,
ich geh jetzt einfach davon aus, dass Du jpg verwendest und das die Bilddatei so heisst wie der Verein (identische Schreibweise)
Das ganze läuft in einer selbstgeschriebenen Funktion, der Aufruf erfolgt so, wie Du es gewohnt bist, als Funktionsaufruf in den Zellen:
Wenn du das noch woanders brauchst, musst du nur aufpassen, dass du die richtige Quelle anziehst (Zelle wo der Name steht).
Falls Du keine jpg verwendest, dann musst Du das beim Aufruf in den Zellen korrigieren (einfach mal eine Zelle mit logo anklicken und schauen was dann oben unter fx zu sehen ist. da kannst Du dann die Dateiendung anpassen.
Damit solltest Du hoffentlich klarkommen
https://www.herber.de/bbs/user/94278.xlsm
Gruß
yummi

Anzeige
brauchst du die lösung nicht mehr?
09.12.2014 11:47:49
yummi
Hallo Stefan,
hab dir mal im letzten posting die Lösung umgesetzt.
Gruß
yummi

AW: brauchst du die lösung nicht mehr?
09.12.2014 13:00:44
Stefan
Hallo Yummi,
doch klar schau mir das später an bin im Stress :-)
Gruss
Stefan

AW: brauchst du die lösung nicht mehr?
09.12.2014 13:43:11
Stefan
Hallo Yummi,
so hab mir das mal angesehen. Danke dafür ! :-)
Jetzt hab ich natürlich noch ein paar fragen.
was ist wenn eine Mannschaft an einer anderen Position steht oder eine andere Mannschaft am Turnier teilnehmen will ?
Müssen die Bilder eine bestimmte größe haben oder passen die sich an ?
fragen über Fragen :-) ich hoffe ich nerve dich nicht.
gruss
Stefan

Anzeige
AW: brauchst du die lösung nicht mehr?
09.12.2014 14:14:52
yummi
Hallo Stefan,
ich versuch mal die Fragen zu klären ;-)
Wenn Du das Wappen in der Zelle mal löscht (dann kommst Du besser an die Zelle ran ;-)
dann siehst Du, dass in jeder Zelle, in der ein Wappen zu sehen ist eine Formel steht. Das beduetet, wenn du dein Wappen woanders haben willst, dann musst Du dort eben die Formel eintragen. Die Formel unterscheidet sich in den einzelnen Zellen nur an einer Stelle, dass ist die Zelle die den Namen des Wappens, welches angezeigt werden soll bestimmt (muss nicht direkt daneben sein, kann sogar auf einem anderen Tabellenblattsein, einfach beim eingeben der Formel, nachdem der Cursor an der Stelle für die Zelle steht, auf die gewünschte Zelle klicken und gut ist)
Fazit: Du kannst dein Wappen anzeigen lassen wo immer du willst, einfach
=GraphicfileInZelleEinfuegen(ZEILE();SPALTE();D73&".jpg") eingeben (für D73 natürlich deine gewünschte zelle, wo der Name steht
Das Wappen erscheint in der Zelle, in der Du die Formel eingibst.
Die einzige Bedingung, die das Bild hat, es muss ein jpg sein. Falls Du png nehmen willst, musst du den Teil ".jpg" durch ".png" ersetzen. Andere Dateiendungen gehen nicht.
Das Wappen passt sich dann der Größe der Zelle an, wobei je nachdem ob zuerst die Höhe oder die Breite der Zelle erreicht wird, dann schluss ist (es wird also nicht aus einem quadratischen Wappen ein rechteckiges)
Die Bilddatei muss im selben Pfad liegen, wie die excel Datei.
Wenn Du das Ganze mal in eienr anderen Datei verwenden willst, dann musst Du das was in dem Modul1 (im VBA Editor) ist mitnehmen. Modul2 kannst du löschen, das wird nicht benötigt, hab vergessen sauber zu machen)
Ich hoffe, es wird klarer, wie Du damit was anfangen kannst.
Axo noch eine Kleinigkeit:
Du kannst die Funktion auch so aufrufen
=GraphicfileInZelleEinfuegen(ZEILE();SPALTE();D73&".jpg", "deinbilderverzeichnis")
dann läd er die Wappen aus dem von dir gewählten Verzeichnis (sollte jedenfalls klappen, hab ich aber nicht getestet ;-)
Viel Spass beim Spielen und auspobieren
yummi
PS: Wenn Du noch Fragen hast, vlt hab ich ja noch ein parr Antworten

AW: brauchst du die lösung nicht mehr?
09.12.2014 15:09:45
Stefan
Hallo Yummi,
Das ist echt klasse was du da gemacht hast :-)
Leider verstehe ich das mit der Größe der Bilder nicht.
Er stellt die Wappen immer sehr lang da zieht sie aber nie in die Breite.
Also das Wappen FC Bayern München was ja ein Kreis ist zieht er extrem in die Länge aber nie in die Breite. Egal wie Breit oder hoch die Zelle ist ändert er die Breite nie.
Vielleicht hab ich das auch falsch verstanden ;-)
Kann man die Zeichen auch automatisch mittig setzen ?

AW: brauchst du die lösung nicht mehr?
09.12.2014 15:32:16
yummi
Hallo Stefan,
ja scheint noch ein kleienr Bug drin zu sein, die grafik richtet sich vorrangig nach der höhe der Zeile aus. vlt hab ich ja nochmal zeit mir das genauer anzusehen.
Was das Zentrieren betrifft:
Tausch mal mal die funktion im vba Editor aus und nimm diese:

Function GraphicfileInZelleEinfuegen(lngZeile As Long, lngSpalte As Long, strDatei As String,  _
Optional strPfad As String = "")
Dim shpNeu As Object
Dim iFaktor As Integer
Dim wksTabelle As Worksheet
Dim rng As Range
Set wksTabelle = ActiveSheet
iFaktor = wksTabelle.Cells(lngZeile, lngSpalte).MergeArea.Columns.Count
If strPfad = "" Then
strPfad = ActiveWorkbook.Path
End If
If Right(strPfad, 1)  "\" Then strPfad = strPfad & "\"
If Dir(strPfad & strDatei)  "" Then
'alte Wappen löschen
On Error Resume Next
wksTabelle.Shapes.Range(Array("Grafik" & lngSpalte & lngZeile)).Delete
Set rng = wksTabelle.Range(wksTabelle.Cells(lngZeile, lngSpalte), wksTabelle.Cells( _
lngZeile, lngSpalte))
Set shpNeu = wksTabelle.Pictures.Insert(strPfad & strDatei)    'evtl noch Abfrage ob  _
Datei überhaupt vorhanden
shpNeu.Top = wksTabelle.Rows(lngZeile).Top
With shpNeu
With .ShapeRange
.LockAspectRatio = msoTrue
If .Height > rng.Height Then .Height = rng.Height
If .Width > rng.Width * iFaktor Then .Width = rng.Width * iFaktor
End With
.Height = wksTabelle.Rows(lngZeile).Height
.Left = wksTabelle.Columns(lngSpalte).Left
.Name = "Grafik" & lngSpalte & lngZeile
.Top = rng.Top + (rng.Height - .Height) / 2
.Left = rng.Left + (rng.Width * iFaktor - .Width) / 2
End With
Else
MsgBox strPfad & strDatei & " nicht vorhanden"
End If
Set wksTabelle = Nothing
End Function
ich hoffe du weißt wie das geht.
Gruß
yummi

nimm diese hier
09.12.2014 15:49:37
yummi
Hallo Stefan,
ging doch schneller ;-)
nimm diese und nicht die andere zuvor gepostete, damit ist das Problem behoben. zentriert und größenanpassung richtig

Function GraphicfileInZelleEinfuegen(lngZeile As Long, lngSpalte As Long, strDatei As String, _
Optional strPfad As String = "")
Dim shpNeu As Object
Dim iFaktor As Integer
Dim wksTabelle As Worksheet
Dim rng As Range
Set wksTabelle = ActiveSheet
iFaktor = wksTabelle.Cells(lngZeile, lngSpalte).MergeArea.Columns.Count
If strPfad = "" Then
strPfad = ActiveWorkbook.Path
End If
If Right(strPfad, 1)  "\" Then strPfad = strPfad & "\"
If Dir(strPfad & strDatei)  "" Then
'alte Wappen löschen
On Error Resume Next
wksTabelle.Shapes.Range(Array("Grafik" & lngSpalte & lngZeile)).Delete
Set rng = wksTabelle.Range(wksTabelle.Cells(lngZeile, lngSpalte), wksTabelle.Cells( _
lngZeile, lngSpalte))
Set shpNeu = wksTabelle.Pictures.Insert(strPfad & strDatei)    'evtl noch Abfrage ob _
Datei überhaupt vorhanden
shpNeu.Top = wksTabelle.Rows(lngZeile).Top
With shpNeu
With .ShapeRange
.LockAspectRatio = msoTrue
If .Height > rng.Height Then .Height = rng.Height
If .Width > rng.Width * iFaktor Then .Width = rng.Width * iFaktor
End With
'.Height = wksTabelle.Rows(lngZeile).Height
'.Left = wksTabelle.Columns(lngSpalte).Left
.Name = "Grafik" & lngSpalte & lngZeile
.Top = rng.Top + (rng.Height - .Height) / 2
.Left = rng.Left + (rng.Width * iFaktor - .Width) / 2
End With
Else
MsgBox strPfad & strDatei & " nicht vorhanden"
End If
Set wksTabelle = Nothing
End Function
Einfach im vba editor die funktion komplett ersetzen und dann das Blatt neu berechnen.
Gruß
yummi

Sollen wir die Wappen zeichnen, oder was?
05.12.2014 16:18:13
EtoPHG
Hallo Stefan,
Du lädst eine Datei hoch, in der nirgends Wappen zu sehen sind.
Also:
Sollen wir die zeichnen ?
Sollen wir sie für dich im iNet suchen?
oder hast du schon Dateien, in welchem Format, mit welchen Namen auf welchen Verzeichnissen?
...und was heisst 'automatisch' einfügen? Irgendwelche Regeln woher die Bilchen kommen müssen schon existieren!
Gruess Hansueli

sorry... hab nicht alles gelesen...
05.12.2014 16:21:54
EtoPHG
Hallo Stefan,
Wenn du aus dem Vereinsnamen einen eindeutigen Bildnamen (Filenamen) ableiten kannst, dann kannst du auch die entsprechenden Bilder in die Zellen laden. Such mal in der Recherche, da hat es einige Beispiele, die deinen Anforderungen entsprechen.
Gruess Hansueli

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige