Excel VBA vágólap import objektummal

Excel VBA vágólap import objektummal
2019-12-24T15:04:41+01:00
2019-12-25T20:13:04+01:00
2022-12-06T06:25:38+01:00
Zsolt5050
Sziasztok!

Adott egy táblázat egy weboldalon. Kijelölés után copy-paste Excelbe, majd markó futtatása az adatok megfelelő formátumba alakításához és elhelyezéséhez.
A vágólapon lévő adatok beillesztése után a legtöbb adatot fel tudom dolgozni VBA makróval.
Van néhány elem (objektum) ami szerintem képként kerül másolásra. Ezekkel feldolgozásával teljesen elakadtam.
Tudnátok segíteni útmutatóval vagy megoldással az alábbiakban?

Ezek az objetumok is bekerülnek a megfelelő cellába. Ha másolom a cellát ez is másolódik. A "kép" színes jel +;-;<;> esetleg szám. Nyilván értékké nem alakítható.
Milyen VBA utasítással lehet ezekre hivatkozni?
Összehasonlítható egy letárolt mintával?
Mutasd a teljes hozzászólást!
Szia!

Ha rákattintasz egy képre, akkor a szerkesztőléc előtti mezőben (ahol az aktív cella címe szokott lenni) megjelenik a kép neve.
Erre hivatkozhatsz a makróban.

Egy cellapozició megtalálásában segit az ActiveCell.Left és ActiveCell.Top.
Ez megadja az éppen aktuális cella bal felső sarkát.
Ezt már össze tudod hasonlítani egy kép pozíciójával

Sub Picture_info() For Each Pict In ActiveSheet.Pictures Cells(1, 1).Value = Pict.Name Cells(1, 2).Value = Pict.Left Cells(1, 3).Value = Pict.Top Next End Sub
Mutasd a teljes hozzászólást!

  • Hali !



    Így első szusszra....
    Az "+,/,<,>" karakterek függvények részei ! (pl.: B1 + B2)
    Valószínűleg ezért kezeli másképp a beillesztésnél.
    Mi lenne ha beillesztés előtt formáznád a cellát szövegre !?
    Mutasd a teljes hozzászólást!
  • Így néz ki:
    A weboldalon :                               
      10     50    25% ++ 45,2(22)
    124    75    65% -      2,1(45)
     34-   33    54>        22,0(34)

    táblába másolva:
        10    50    25%   45,2(22)
      124    75    65%      2,1(45)    Itt is látszik a -+>
        34   33    54        22,0(34)   de képként.

    A számok, tizedes vesszők, százalékjelek és () jelek karakterek. A - + ++ > kép (GIF)
    Másolásra kijelölöm, excelbe beillesztem. Ott is látszik minden, a GIF is, ami a megfelelő számhoz tartozó cellába kerül.
    Ez ok, innentől kellene valahogy VBA-ban lekezelni.
    A karakterekkel (szám, %, () ) nincs is gond.
    A cellának mely tulajdonsága írja le, hogy képet IS tartalmaz?
    Mutasd a teljes hozzászólást!
  • Szia!

    Ha megnézed a munkafüzetben, milyen néven jelennek meg a képek, akkor azokat - ha nem kellenek - törölni is lehet VBA-ból.

    Vagy csak egyszerűen törölsz minden "kép..." objektumot.
    Mutasd a teljes hozzászólást!
  • Eddig ezt találtam amivel ki tudom jelölni:

    ActiveSheet.Shapes.Range(Array("Picture 29")).Select
    Nyilván így akár törölni is lehetne, de a feldolgozás a cél.
    Vagyis:
    Összehasonlítani egy másik képpel (elvileg 8-15 féle "kép")
    Nem szeretném minden alkalommal kézzel megkeresni és megadni a "Picture 29"-et.
    Olyan hivatkozást keresek ami kijelöli a C20 celléban lévő képet
    VAGY
    kijelölöm a C20 cellát és visszaadja a cellában lévő kép nevét "Picture 29"

    Ez utóbbi biztosan lehetséges valahogy, mivel a kijelölt cellát másolva a kép is másolódik.

    Ha megnézed a munkafüzetben, milyen néven jelennek meg a képek,

    Ezt hol és hogyan?
    Mutasd a teljes hozzászólást!
  • Szia!

    Ha rákattintasz egy képre, akkor a szerkesztőléc előtti mezőben (ahol az aktív cella címe szokott lenni) megjelenik a kép neve.
    Erre hivatkozhatsz a makróban.

    Egy cellapozició megtalálásában segit az ActiveCell.Left és ActiveCell.Top.
    Ez megadja az éppen aktuális cella bal felső sarkát.
    Ezt már össze tudod hasonlítani egy kép pozíciójával

    Sub Picture_info() For Each Pict In ActiveSheet.Pictures Cells(1, 1).Value = Pict.Name Cells(1, 2).Value = Pict.Left Cells(1, 3).Value = Pict.Top Next End Sub
    Mutasd a teljes hozzászólást!
  • Ezzel megoldhatóvá vált a cellához "tartozó" kép létezésének és nevének lekérdezése.
    Úgy tűnik az összehasonlítás minta alapján megoldható (csak macerás). Szerencsére a weboldal mindig ugyanazt a gif-et használja ugyanarra a jelre.

    Köszönöm.

    Kis javítás a példához:

    Dim dd As Integer Dim Pict As Object Cells(1, 5).Value = 0 dd = 1 For Each Pict In ActiveSheet.Pictures Cells(dd, 1).Value = Pict.Name Cells(dd, 2).Value = Pict.Left Cells(dd, 3).Value = Pict.Top dd = dd + 1 Next
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd