Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Formen Namen zuweisen und größe Verändern

Forumthread: Formen Namen zuweisen und größe Verändern

Formen Namen zuweisen und größe Verändern
25.11.2017 13:35:49
Oliver
Hey Leute,
brauche dringend eure Hilfe. Ich möchte ein Bild in meine Excel Tabelle einfügen und diesem Objekt einen Namen zuweisen, damit ich geziehlt dieses Objekt verschieben bzw. in Zellen packen kann. Ich versteh es nur nicht wirklich, wie das ganze funktioniert.
Mein Code bis jetzt:

Bild = "http://chart.apis.google.com/chart?cht=qr&chs=100x100&chl=TestQRCode"
Set sh = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 100, 100, 100, 100.25)
sh.ShapeRange.Fill.UserPicture Bild
Debug.Print ActiveSheet.Shapes(1).sh
With sh
.ShapeRange.LockAspectRatio = msoFalse
.Width = cl.Width
.Height = cl.Height
.top = Rows(cl.Row).top
.Left = Columns(cl.Column).Left
End With

Freue mich auf eure Antworten!
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formen Namen zuweisen und größe Verändern
25.11.2017 13:39:14
Hajo_Zi
With sh
.Name="Test"

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben,
mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
Beiträge von Werner, Luc, robert und folgende lese ich nicht.
Anzeige
AW: Formen Namen zuweisen und größe Verändern
25.11.2017 14:23:09
Oliver
Erste mal danke für die schnelle Antwort!
doch ich bekomme es nicht hin.
Excel zeigt mir bei der 4 Zeile ein Fehler. Mein abgeänderter Code:
Bild = "http://chart.apis.google.com/chart?cht=qr&chs=100x100&chl=TestQRCode"
Set sh = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 100, 100, 100, 100.25)
With sh
ShapeRange.Fill.UserPicture Bild
Debug.Print ActiveSheet.Shapes(1).sh
.ShapeRange.LockAspectRatio = msoFalse
.Width = cl.Width
.Height = cl.Height
.top = Rows(cl.Row).top
.Left = Columns(cl.Column).Left
End With

Anzeige
AW: Formen Namen zuweisen und größe Verändern
25.11.2017 14:44:10
Hajo_Zi
Gut mein Vorschlag sagte nicht zu.
Gruß Hajo
AW: Formen Namen zuweisen und größe Verändern
25.11.2017 14:57:03
Nepumuk
Hallo Oliver,
teste mal:
Public Sub Test()
    Dim sh As Shape
    Dim Bild As String
    Dim cl As Range
    Set cl = Range("B2:B5")
    Bild = "http://chart.apis.google.com/chart?cht=qr&chs=100x100&chl=TestQRCode"
    Set sh = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 100, 100, 100, 100.25)
    With sh
        .Name = "Test"
        .Fill.UserPicture Bild
        .LockAspectRatio = msoFalse
        .Width = cl.Width
        .Height = cl.Height
        .Top = cl.Top
        .Left = cl.Left
    End With
    Set cl = Nothing
    Set sh = Nothing
End Sub

Gruß
Nepumuk
Anzeige
AW: Formen Namen zuweisen und größe Verändern
25.11.2017 16:01:44
Oliver
Danke funktioniert super! Nur jetzt habe ich noch eine Frage. Und zwar möchte ich das, dass Bild in Zelle B2 eingefügt wird, was auch super funktioniert, aber ich möchte das nächste Bild in Zelle B3 einfügen und die darauffolgenden Bilder in den Zeilen darunter. Ich kann ja nicht Range +1 eingeben.
Freue mich auf eure Antworten!
Anzeige
AW: Formen Namen zuweisen und größe Verändern
25.11.2017 16:10:44
Nepumuk
Hallo Oliver,
wir fügen einfach unter dem Bild ein x in die Zelle ein. Dann kann einfach die nächste freie Zelle angesteuert werden.
Public Sub Test()
    Dim sh As Shape
    Dim Bild As String
    Dim cl As Range
    Set cl = Cells(Rows.Count, 2).End(xlUp).Offset(1, 0)
    Bild = "http://chart.apis.google.com/chart?cht=qr&chs=100x100&chl=TestQRCode"
    Set sh = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 100, 100, 100, 100.25)
    With sh
        .Name = "Test"
        .Fill.UserPicture Bild
        .LockAspectRatio = msoFalse
        .Width = cl.Width
        .Height = cl.Height
        .Top = cl.Top
        .Left = cl.Left
    End With
    cl.Value = "x"
    Set cl = Nothing
    Set sh = Nothing
End Sub

Gruß
Nepumuk
Anzeige
AW: Formen Namen zuweisen und größe Verändern
25.11.2017 16:25:01
Oliver
Danke danke danke!!! Du weißt gar nicht wie lang ich an dem gesamten hier rum getüftelt hatte.. :)
Ich hätte aber noch eine Frage, wenn wir hier sowieso schon so gut dabei sind mein Problem zu lösen !
Und zwar ich möchte auf dieser Seite:
https://www.alibaba.com/product-detail/0-4kw-630kw-ac-variable-frequency_60497237328.html?spm= _
a2700.7724838.2017115.2.37171bc9l751K1&s=p

Die "Model Number" exportiert bekommen. Ich habe mich auch schlau gemacht mit dem Thema getElementsByClassName, getElementsByTagName usw. nur leider hat die "Model Number" kein Tag Name, zwar hat sie eine Class, doch haben die ganzen anderen Merkmale von diesem Produkt die selbe Klasse. Kann mir hierbei vielleicht noch jemand helfen?
Freue mich auf eure Antworten!
Anzeige
AW: Formen Namen zuweisen und größe Verändern
26.11.2017 10:41:06
Nepumuk
Hallo Oliver,
mach dazu einen neuen Thread auf, denn das hat ja mit diesem nichts zu tun.
Gruß
Nepumuk
;
Anzeige
Anzeige

Infobox / Tutorial

Formen Namen zuweisen und Größe verändern in Excel


Schritt-für-Schritt-Anleitung

  1. Form erstellen und Bild hinzufügen: Verwende den folgenden VBA-Code, um eine Form zu erstellen und ein Bild hinzuzufügen. Der Code nutzt msoShapeRectangle, um ein Rechteck zu erstellen.

    Sub Test()
       Dim sh As Shape
       Dim Bild As String
       Dim cl As Range
       Set cl = Range("B2")
       Bild = "http://chart.apis.google.com/chart?cht=qr&chs=100x100&chl=TestQRCode"
       Set sh = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 100, 100, 100, 100.25)
       With sh
           .Name = "Test" ' Hier wird der Name der Form zugewiesen
           .Fill.UserPicture Bild
           .LockAspectRatio = msoFalse
           .Width = cl.Width
           .Height = cl.Height
           .Top = cl.Top
           .Left = cl.Left
       End With
    End Sub
  2. Formen Namen zuordnen: Stelle sicher, dass du jeder Form einen eindeutigen Namen gibst, um sie später einfacher verwalten zu können.

  3. Positionierung der Form: Um die Form an einer bestimmten Zelle zu positionieren, verwende die Top und Left Eigenschaften, um die Form genau in die Zelle zu verschieben.

  4. Größe der Form anpassen: Die Größe der Form kann einfach durch die Width und Height Eigenschaften verändert werden.


Häufige Fehler und Lösungen

  • Fehler beim Zuweisen von Namen: Wenn Excel einen Fehler anzeigt, stelle sicher, dass der gewählte Name für die Form eindeutig ist. Vermeide Leerzeichen oder Sonderzeichen.

  • Form wird nicht angezeigt: Dies kann passieren, wenn die Top und Left Werte außerhalb des sichtbaren Bereichs liegen. Überprüfe die Werte und stelle sicher, dass sie in den Grenzen deines Arbeitsblatts liegen.

  • Bild wird nicht geladen: Achte darauf, dass die URL des Bildes korrekt ist. Ein einfacher Test ist, die URL in einem Browser zu öffnen.


Alternative Methoden

  • Formen mit Namen in der Excel-Oberfläche erstellen: Anstatt VBA zu verwenden, kannst du Formen direkt in Excel erstellen und diesen Formen Namen über das Kontextmenü zuweisen. Klicke mit der rechten Maustaste auf die Form und wähle „Namen ändern“.

  • Namen von Formen in der Namensbox: Du kannst auch die Namensbox im Excel verwenden, um den Namen einer ausgewählten Form schnell zu ändern.


Praktische Beispiele

  1. Mehrere Formen erstellen: Wenn du mehrere Formen in aufeinanderfolgende Zellen einfügen möchtest, kannst du eine Schleife verwenden, um die Positionen dynamisch zu setzen.

    Sub MehrereFormen()
       Dim sh As Shape
       Dim Bild As String
       Dim i As Integer
       Bild = "http://chart.apis.google.com/chart?cht=qr&chs=100x100&chl=TestQRCode"
       For i = 0 To 5 ' Beispiel für 6 Formen
           Set sh = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 100, 100 + (i * 50), 100, 100.25)
           With sh
               .Name = "Form" & i
               .Fill.UserPicture Bild
           End With
       Next i
    End Sub
  2. Formen und Bilder kombinieren: Du kannst auch Formen mit verschiedenen Bildern kombinieren, indem du unterschiedliche URLs für die Bilder in der Schleife verwendest.


Tipps für Profis

  • Verwende aussagekräftige Namen für Formen: Anstatt generische Namen wie „Form1“ zu verwenden, benutze spezifische Namen, die den Inhalt oder Zweck der Form beschreiben (z.B. „ProduktQRCode“).

  • Optimierung des Codes: Wenn du viele Formen erstellst, achte darauf, den Code so zu optimieren, dass er effizienter läuft. Verwende Arrays oder Sammlungen, um Form-Daten zu speichern.

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung in deinen VBA-Skripten, um Probleme bei der Ausführung zu erkennen und zu lösen.


FAQ: Häufige Fragen

1. Wie kann ich den Namen einer bestehenden Form ändern?
Du kannst den Namen einer bestehenden Form ändern, indem du den folgenden Code verwendest:

ActiveSheet.Shapes("AlterName").Name = "NeuerName"

2. Kann ich die Größe einer Form dynamisch anpassen?
Ja, du kannst die Größe einer Form dynamisch anpassen, indem du die .Width und .Height Eigenschaften in deinem Code setzt.

3. Was ist msoShapeRectangle?
msoShapeRectangle ist eine Konstante in VBA, die verwendet wird, um ein Rechteck zu erstellen. Du kannst andere Formen mit unterschiedlichen Konstanten erstellen, wie z.B. msoShapeOval für Ovale.

4. Wie füge ich mehrere Bilder in aufeinanderfolgende Zellen ein?
Verwende eine Schleife, um die Position der Zellen zu bestimmen und füge das Bild in jede Zelle ein, indem du die Offset-Methode nutzt, um zur nächsten Zelle zu navigieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige