Er der en måde at gøre det på, at man kan bestemme netop det sted man vil have objektet placeret, få "koordinaterne" og så indsætte dem i koden i stedet?
Denne indsætter objektet's øverste venstre hjørne i cellens øverste venstre hjørne
Sub BullsEye() With ActiveSheet.Shapes(("Object 58") .Top = Range("B4").Top .Left = Range("B4").Left End With End Sub
Og denne indsætter objektet's øverste venstre hjørne midt i cellen - horisontal & vertikal
Sub BullsEyeCenter() With ActiveSheet.Shapes(("Object 58") .Top = Range("B4").Top + Range("B4").Height / 2 .Left = Range("B4").Left + Range("B4").Width / 2 End With End Sub
Med en modifikation tror jeg, at jeg kan bruge dit forslag, excelent:
Lige nu vælger din kode mit "skabelon" objekt og sætter det ind på en fast plads. Jeg har dog brug for, at det bliver KOPIEN af det objekt, der bliver sat ind (se min kode øverst). Kan man det?
Objektet der skal indsættes vil jo hver gang jeg kører koden få 1 nummer højere som navn. Fx første gang "Object 58+1" osv. Men det kender du sikkert en løsning på... :)
Hvis du kun har et objekt når du kører koden, så kan denne anvendes, ellers skal jeg vide noget mere om dit projekt
Sub BullsEye() ActiveSheet.Shapes(1).Select Selection.Copy ActiveSheet.Paste With Selection .Top = Range("B4").Top .Left = Range("B4").Left End With End Sub
Det er jo nærmest perfekt :). Der er mange (x) word-objekter, men det er jo heldigt at når skabelonen bliver kopieret og kopien indsat, så bliver kopien automatisk selected! Så man behøver ikke forholde sig til, at den har et nummer højere end den senest indsatte kopi. Jeg har lavet den første linje i din kode om til:
Nu sidder objektet i cellen øverst til venstre. Kan man sætte et par linjer ind, hvor man kan korrigere objektet lidt til højre og ned også - lidt ligesom i min kode øverst? Jeg kan ikke få det til virke med de konkrete linjer efter at with sætningen er kommet ind...
Undskyld alle de spredte kommenteringer... Men det er nødvendigt kan jeg se først at få objeketet fikseret indsat FØR det rykkes et andet sted hen. Med store-mortens forslag skifter placeringen, hvis man flytter skabelonen - det gør det ikke med excelents forslag. Så hvis man kan bruge excelents forslag og så rykke lidt på objektet efter det er indsat i cellens hjørne, så er det perfekt...
Sub BullsEye() ActiveSheet.Shapes(1).Select Selection.Copy ActiveSheet.Paste With Selection .Top = Range("B4").Top + 2 ' <-- skift til passende tal .Left = Range("B4").Left + 2 ' <-- skift til passende tal End With End Sub
Sub førsteForslag() ActiveSheet.Shapes("1").Select Selection.Copy Range("B4").Select ActiveSheet.Paste Selection.ShapeRange.IncrementLeft 2 Selection.ShapeRange.IncrementTop 2 End Sub
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.