Ga naar inhoud

Alternatieve tekst van afbeelding in een cel wegschrijven


Rob7

Aanbevolen berichten

Hallo ,

Met weinig kennis van zaken heb ik een korte macro geschreven waarvan ik verwachtte dat hij de alternatieve tekst van de afbeelding in A1 in de cel G1 zou wegschrijven .

Uitvoeren lukt zonder problemen maar ik zie geen resultaat .

Wat zie ik over het hoofd ?

 

Sub TestShapes2()

Dim oShape As Shape
With ActiveSheet
   For Each oShape In .Shapes
   If oShape.TopLeftCell = ("A1") Then
   [G1].Value = oShape.AlternativeText
   End If
   Next oShape
End With


End Sub

test vgl foto's2.xlsm

Link naar reactie
Delen op andere sites

Je kan , merk ik , i.p.v. A1 om het even welke cel invullen , het resultaat van de macro blijft altijd gelijk . Kan dit het gevolg zijn van het feit  dat ik foto's in mijn spreadsheet verschoven heb na ze erin geplakt te hebben ? 

Link naar reactie
Delen op andere sites

Het probleem is verdwenen nadat ik de afbeeldingen geknipt en terug op dezelfde plaats geplakt heb . Misschien bevestigt dat mijn vermoeden dat het verschuiven de oorzaak van het probleem was ( positie die vastgelegd wordt bij plakken , ongeacht latere verschuivingen ? ) .

In elk geval bedankt voor de moeite . Zonder uw eerdere verbeteringen van mijn macro was ik nooit tot een goede oplossing gekomen .

Link naar reactie
Delen op andere sites

Hallo ,

 

Ik heb de indruk ( maar vrijwel geen Excel/vba ervaring ) dat vba na verschuiving van afbeelding nog altijd de initiële positie van die afbeelding ( positie waar afbeelding in werkblad werd geplakt ) in het werkblad gebruikt bij eigenschappen zoals bvb. TopLeftCell .

Zit er misschien ergens een knop die je kan omzetten zodat vba de actuele positie van de afbeelding op het ogenblik dat de macro wordt uitgevoerd , na verschuiving van de afbeelding , gebruikt ?

 

 

Link naar reactie
Delen op andere sites

Ik tracht een opdrachtenblad te maken waarbij diegene die de opdracht uitvoert foto's naar de juiste plaats moet slepen . Dat wilde ik controleren door de foto's d.m.v. alternatieve tekst te vergelijken met de juiste afbeelding . Bvb. sleep een foto naar E3 , rekenblad kijkt dan of alternatieve tekst van foto in E3 gelijk is aan alternatieve tekst van foto in G3 . De juiste foto's staan in verborgen kolommen . Als er ergens alternatieve tekst wordt weggeschreven heb ik graag dat dat ook gebeurt in verborgen kolommen omdat dat wat mooier oogt . Zoals ik al eerder aangaf werkt het wel wanneer ik knip en plak in plaats van sleep ( misschien is Excel dus wel een stickerboek  😊 ) .

Ik beschrijf mijn project(je) niet gedetailleerd en volledig omdat ik de informatie graag stap per stap verwerk en begrijp . Indien ik in één keer een volledig uitgewerkte macro voor het geheel zou krijgen , zou ik zeker niet meer zien welke lijnen in de macro welke acties uitlokken .

Zoals gezegd kan ik het probleem oplossen door de mensen die de opdracht uitvoeren gewoon te zeggen dat ze moeten knippen en plakken i.p.v. schuiven maar ik ben ondertussen zo onder de indruk van de mogelijkheden van Excel/vba dat ik dacht dat de optie positie bepalen na verschuiven wel zou bestaan . 

Link naar reactie
Delen op andere sites

Sub TestShapes2()

Dim oShape As Shape, img1 As String, img2 As String

With ActiveSheet
   For Each oShape In .Shapes
        If oShape.TopLeftCell.Address = "$A$1" Then
            img1 = oShape.AlternativeText
        ElseIf oShape.TopLeftCell.Address = "$C$1" Then
            img2 = oShape.AlternativeText
        End If
   Next oShape
End With

If (img1 <> vbNullString) * (img2 <> vbNullString) Then
    MsgBox IIf(img1 = img2, "Gelijke", "Ongelijke") & " afbeeldingen"
End If

End Sub

Speel hier maar eens mee.

 

Test de code in het voorbeeldbestand, sleep daarna de afbeeldingen naar andere posities, wijzig de adressen in de code en draai de code opnieuw.

 

 

test vgl foto's.xlsm

Link naar reactie
Delen op andere sites

×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.