| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: Bilder in Excel verknüpfen (2029 mal gelesen)
|
besele Mitglied

 Beiträge: 62 Registriert: 14.07.2011
|
erstellt am: 30. Dez. 2013 17:17 <-- editieren / zitieren --> Unities abgeben:         
Hallo ihr da draußen, habe folgendes Problem. Habe für unseren Sparverein eine Liste gemacht und bin von den Umliegenden Sparvereinen gefragt worden ob sie diese Liste auch nutzen könnten. Hier mein Problem, da ich mich mit Excel nicht so gut auskenne und alle anderen Verein ein anderes Bankinstitut haben möchte ich die Liste Automatisieren. Logo Tauschen und die Unterschriften die ich bei unseren Verein eingefügt habe. Vielleicht könnt ihr mir helfen, das wäre sehr nett. Füge noch einen Teil meiner Liste an zum Verständnis. lg besele (Datei - Sparvereinaushebungsliste.xls) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
berounba Mitglied
 
 Beiträge: 270 Registriert: 22.12.2012 ------------------------ Intel Core i7-2920XM 16 GB RAM ------------------------ Win 7 SP1 x64 ------------------------ Pro Engineer WF5 / ProNC Creo 1.0 (Parametric/NC) Creo 2.0 (Parametric/NC) Rapidform XOR3 Abaqus 6.13 Revit 2014 ------------------------
|
erstellt am: 31. Dez. 2013 11:55 <-- editieren / zitieren --> Unities abgeben:          Nur für besele
|
besele Mitglied

 Beiträge: 62 Registriert: 14.07.2011
|
erstellt am: 31. Dez. 2013 12:39 <-- editieren / zitieren --> Unities abgeben:         
Hi berounba, dies ist nur ein kurzer Ausschnitt von meiner Liste. im Original sind bis zu 200 Seiten. oder gibt es vielleicht eine andere Möglichkeit das ich nur ein Blatt für meine ganzen Datensätze brauche und beim Drucken alle Teilnehmer Ausgedruckt werden? lg besele Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
      

 Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 31. Dez. 2013 13:05 <-- editieren / zitieren --> Unities abgeben:          Nur für besele
So richtig schlau werde ich aus dem Exceldokument nicht - zumindest was die Formeln betrifft^^ zum Logo tauschen Ein neues Blatt erstellen, Zelle A1 in Länge und Breite vergrössern und benamsen (z.B. Bild), in diese Zelle das Bild einfügen die Zelle an das Bild in Breite und Länge anpassen. Dann Einfügen / Objekt / Bitmap Image - den Paint Dialog beenden, in das Objekt klicken und =EINBETTEN("Paint.Picture";"") durch =Bild ersetzen. Dieses Objekt dann per copy und paste auf die entsprechenden Blätter verteilen. Wird nun das Bild in Zelle A1 (Bild) gegen ein anderes Bild ausgetauscht, so sollten alle Verknüpfungen mitgezogen werden. BTW Ich würde auf auf solche Redundanzen verzichten -ist unnütze Information, die nicht überall auftauchen muss, sondern nur einmal. Und wenn, dann würde ich eine Kopfzeile definieren und dort hinein kommen dann die immer wiederkehrenden Informationen Logo, etc. Das sollte dann auch jeder austauschen können -Grafik natürlich vorher mittels Grafikprogramm auf eine vernünftige Grösse skaliert. Die Blätter 1-2, 2-3, bis 169-170? etc. werden die nachher alle existieren? Das würde ich auf ein Blatt reduzieren und die Formeln mit =Sverweis() definiereren. Mit einem Makro, wird die lfnr (Selektion) aus dem Blatt Gesamtplan in das Blatt 1-2 kopiert. Das Blatt 1-2 habe ich mal mit den Formeln definiert (nur die eine Hälfte) gibt man nun bei der Mitgliedsnummer eine Zahl ein,so werden die entsprechende Verweise geholt. BTW2 http://www.youtube.com/watch?v=qhkiMX8zbDE ein schöner Beitrag das ein sinnvolles weniger, durchaus ein mehr bedeutet. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
besele Mitglied

 Beiträge: 62 Registriert: 14.07.2011
|
erstellt am: 01. Jan. 2014 12:37 <-- editieren / zitieren --> Unities abgeben:         
Hi Thomas Harmening, danke für die Vorschläge und ein Gutes neues Jahr!! Das es mit so wenig Aufwand so zu reduzieren ist ist einfach super. (wenn man sich auskennt) Danke nochmals und werde jetzt bei deiner Liste weiterarbeiten weil ich hätte ja jedes Blatt einzeln erstellt (deswegen hab ich ja gefragt). Nochmals DANKE und einen schönen Tag im neuen Jahr. lg UB Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
      

 Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 03. Jan. 2014 00:08 <-- editieren / zitieren --> Unities abgeben:          Nur für besele
Pm zwecks Anfragen weiterer Möglichkeiten, Hilfestellungen, etc. die direkt mit dem Problem zu tun haben sind eine ganz schlechte Art, da Andere dann davon nichts haben -so was ignoriere ich grundsätzlich. untenstehend der code -mit deaktivierter Druckroutione Code: Sub Druck()For X = 1 To Worksheets("Gesamtplan").Cells(Worksheets("Gesamtplan").Cells(Rows.Count, 1).End(xlUp).Row, 1).Value - 1 Step 2 'ermitteln der letzten belegten Zelle in Spalte A -1 Worksheets("Druck").Cells(5, 2) = X 'befüllen der Zelle in Blatt Druck mglied1 = Worksheets("Druck").Cells(5, 5) & " " & Worksheets("Druck").Cells(5, 7) mglied2 = Worksheets("Druck").Cells(5, 14) & " " & Worksheets("Druck").Cells(5, 16) 'Message 'Verweis auf Microsoft Scripting Runtime Dim WsShell Dim intText As Integer Set WsShell = CreateObject("WScript.Shell") intText = WsShell.Popup("Drucke Mitglied " & X & " aka " & mglied1 & vbLf & _ "Drucke Mitglied " & X + 1 & " aka " & mglied2 & vbLf & _ vbLf & _ "Diese Meldung wird nach 1 Sekunde geschlossen.", 1, "Info...") 'Die 1 die Dauer der Öffnung an. 'Druckroutine 'Worksheets("Druck").PrintOut 'deaktivert, da bei mir alles Drucklos ist :-) intText = WsShell.Popup("gedruckt! ", 1, "Printjob...") Next End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
besele Mitglied

 Beiträge: 62 Registriert: 14.07.2011
|
erstellt am: 03. Jan. 2014 09:28 <-- editieren / zitieren --> Unities abgeben:         
Hi Thomas, danke für den Code und das mit der PM wusste ich nicht (wird nicht mehr vorkommen). Wie aktiviere ich die Druckroutine und gibt es vielleicht eine Möglichkeit der Auswahl wie viel Mitglieder ich ausdrucke. Weil dieser Verein hat 120 Mitglieder und der andere 170 usw. (auch zwecks Testdrucke das nicht immer alles gedruckt wird) Habe den Code probiert und gemerkt das das Fenster was nach 1er Sekunde geschlossen wird nur beim ersten mal funktioniert. Ist das weil die Routine deaktiviert ist oder liegt es wo anders? lg UB Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
      

 Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 03. Jan. 2014 11:24 <-- editieren / zitieren --> Unities abgeben:          Nur für besele
Zitat: Wie aktiviere ich die Druckroutine und gibt es vielleicht eine Möglichkeit der Auswahl wie viel Mitglieder ich ausdrucke.
das ' in 'Worksheets("Druck").PrintOut entfernen /// '= dient dazu das diese Zeile nur als Bemerkung im Code steht und nicht ausgeführt wird. Zitat:
und gibt es vielleicht eine Möglichkeit der Auswahl wie viel Mitglieder ich ausdrucke
. ja, per Eingabe über eine inputbox ( man könnte auch die entsprechenden Zellen markieren und eine Auswertung fahren) Zitat: Weil dieser Verein hat 120 Mitglieder und der andere 170 usw.
das erledigt dieser Syntax Code: Worksheets("Gesamtplan").Cells(Worksheets("Gesamtplan").Cells(Rows.Count, 1).End(xlUp).Row, 1).Value - 1
'es wird die vorletzte belegte Zelle in Spalte zurückgegeben. Code: Sub Druck()'abfrage Dim Eingabe As Variant On Error GoTo Fehler Do Eingabe = Application.InputBox("Bitte eine Druckbereich eingeben xx-xx" & vbLf & vbLf & "Abbrechen = Drucke Alles" & vbLf, Title:="Eingabe", Default:="1-20") If VarType(Eingabe) = vbBoolean Then 'abfragen Abbrechen Start = 1 Ende = Worksheets("Gesamtplan").Cells(Worksheets("Gesamtplan").Cells(Rows.Count, 1).End(xlUp).Row, 1).Value - 1 Exit Do End If vx = Split(Eingabe, "-") If vx(1) Mod 2 = 0 Then vx(1) = vx(1) - 1 'erzwinge ungerade Start = vx(0) Ende = vx(1) If Start <= Ende And Ende >= Start Then MsgBox "Listenausgabe von - bis:" & vbLf & vbLf & Start & "-" & Ende, vbOKOnly, "Information" Exit Do End If Fehler: MsgBox "Fehler! bitte Zahlen so eingeben xx-xx aka 1-12!", 16, "Warnung" Loop On Error GoTo 0 For X = Start To Ende Step 2 Worksheets("Druck").Cells(5, 2) = X 'befüllen der Zelle mglied1 = Worksheets("Druck").Cells(5, 5) & " " & Worksheets("Druck").Cells(5, 7) mglied2 = Worksheets("Druck").Cells(5, 14) & " " & Worksheets("Druck").Cells(5, 16) 'Message 'Verweis auf Microsoft Scripting Runtime Dim WsShell Dim intText As Integer Set WsShell = CreateObject("WScript.Shell") intText = WsShell.Popup("Drucke Mitglied " & X & " aka " & mglied1 & vbLf & _ "Drucke Mitglied " & X + 1 & " aka " & mglied2 & vbLf & vbLf & _ "Diese Meldung wird nach 1 Sekunde geschlossen.", 1, "Info...") 'Die 1 die Dauer der Öffnung an. 'Druckroutine Worksheets("Druck").PrintOut 'aktivert, da bei mir alles Drucklos ist :-) intText = WsShell.Popup("gedruckt! ", 1, "Printjob...") Next End Sub
Nachtrag:
Zitat: Habe den Code probiert und gemerkt das das Fenster was nach 1er Sekunde geschlossen wird nur beim ersten mal funktioniert. Ist das weil die Routine deaktiviert ist oder liegt es wo anders?
hmm, sollte eigentlich durchlaufen, ansonsten kann man ja auf das ok klicken  eventuell ist es besser vor dem Druckauftrag Code: Application.Wait(Now + TimeValue("0:00:01"))
zu setzen und die waitinfoboxen zu löschen. Die Sekunde Wartezeit ist nur dafür da das das makro nicht schneller ist als sich die Formeln aktualisieren  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
besele Mitglied

 Beiträge: 62 Registriert: 14.07.2011
|
erstellt am: 03. Jan. 2014 13:31 <-- editieren / zitieren --> Unities abgeben:         
Hi, Wo soll ich das hinein kopieren "Application.Wait(Now + TimeValue("0:00:01")" weil die Zeile wird immer rot . (Ich habe gar keine Ahnung von Makros, ist nicht mein Fach) Kann man ein Makro auch Passwortschützen damit keiner was verstellen kann? lg und vielen Dank UB
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
      

 Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 03. Jan. 2014 14:07 <-- editieren / zitieren --> Unities abgeben:          Nur für besele
Unten der Code zum ersetzen ab 'message Ja, man kann einen code mit einem Passwort versehen, ich halte aber nichts davon -in der Regel verändert dort keiner was - meine Makros sind alle offen. - Schützen tut nur der, der einen eigenen Vorteil vor Anderen haben möchte - an den Strohhalm muss ich mich nicht klammern ;-) Dann müsstest du im Gegenzug auch deine Blätter vor nichtgewünschten Änderungen schützen und zu guter Letzt die Mappe selber mit einem PW Bis auf das letztgenannte sind diese Sicherheitsvorgehen sehr leicht auszuhebeln -je nach Skill  ALT&F11 Extras / Eigenschaften von VBAProjekt und dann Reiter Schutz Code: 'Message Application.Wait (Now + TimeValue("00:00:01")) 'hh:mm:ss die Dauer der Öffnung.'Druckroutine Worksheets("Druck").PrintOut Application.Wait (Now + TimeValue("00:00:01")) Next End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
besele Mitglied

 Beiträge: 62 Registriert: 14.07.2011
|
erstellt am: 03. Jan. 2014 15:07 <-- editieren / zitieren --> Unities abgeben:         
|
besele Mitglied

 Beiträge: 62 Registriert: 14.07.2011
|
erstellt am: 15. Jan. 2014 21:03 <-- editieren / zitieren --> Unities abgeben:         
Hallo Thomas gibt es auch eine einfache Möglichkeit eine Namenskiste in einem eigenen Tabellenblatt zu generieren? Wo die Reihenfolge lfn / Nachname Vorname / lfn / Nachname Vorname (also zweispaltig) auf jeder Seite das Logo und der Institutsname oben hinzugefügt wird (auch wenn 3 Seiten sind) Zwek Ausdruck zum Aufhängen für den Sparverein. lg UB
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |