Excel Vba

Hallo allemaal.

 

Een beetje uit, maar ik kom snel terug! =)

 

Ik heb een kleine glimlach met een Excel-macro.

Ik weet dat er hier voordelen zijn ^^ (@Lucas) :p

Het gaat niet zozeer om het tekenen zelf, maar het is nog steeds techniek.

 

Ik wil graag een artikelcode in een kolom typen, zodat er in de kolom ernaast een afbeelding staat die bij de tekst aan de linkerkant hoort.

 

Ik heb een VBA-macro gevonden waarmee je dit kunt doen via een fotobibliotheek die in dezelfde map staat als de Excel-werkmap.

 

Maar goed, de lay-out werkte niet, dus ik heb de code een beetje veranderd, maar ik kom er niet doorheen.

 

 

 

 

 

 

2 likes

Daar is hij dan:

 

Optie Expliciete


Sub Affiche_Image()
Dim Ws Als Werkblad                   ' Gebruikt om het bladobject gemakkelijker te manipuleren
Dim Image As String                  ' Bevat de naam van de afbeelding
Dim Lg As Long                        ' Nummer van de laatste rij kolom B

  Set Ws = Bladen("Inkooporder")                                           ' Bladnaam

  Application.ScreenUpdating = False                                  ' Verbiedt schermvernieuwing
 
  Efface_Images
 
  Met Ws
 
    Voor lg = 2 TB . Bereik ("B65536"). Einde(xlUp). Rij                     ' doorkruist alle kolommen B
    
      Afbeelding = DitWerkboek.Pad & "\Catalogus\" & . Cellen (Lg, "A")        ' Directory om te vernieuwen
        
      Op Fout Hervatten Volgende                                            ' We ontdoen ons van fouten
      Met. Afbeeldingen.Invoegen (Afbeelding). ShapeRange                         ' We voegen de afbeelding in waarvan de naam in kolom B staat

2 likes

        . LockAspectRatio = msoFalse                                   ' U kunt het formaat wijzigen zoals u wilt
        . Links = Ws.Cellen(Lg, "B"). Links                                ' Linker Positie
        . Boven = Ws.Cellen(Lg, "B"). Top                                  ' Positie Hoog
        . breedte = ws.cellen(lg, "b"). Breedte                              ' Breedte
        . hoogte = ws.cellen(lg, "b"). Hoogte                            ' hoogte
      Eindigen met
      Als Err.Number > 0 Dan                                          ' Als een fout (afbeelding niet aanwezig)
        MsgBox . Cellen (Lg, "A") & vbCr & "Niet-bestaand beeld"           ' Het wordt gerapporteerd
      Einde als
    Volgende LG
  Eindigen met
Einde Sub


Sub Efface_Images()
Dim Ws Als Werkblad                   ' Gebruikt om het bladobject gemakkelijker te manipuleren
Dim Sh As Shape                       ' Wordt gebruikt om reeds weergegeven vormen (afbeeldingen) te manipuleren

  Set Ws = Bladen("Inkooporder")                                           ' Bladnaam

  Met Ws
 
    Voor elke sh in . Vormen                                            ' Blader door de hele vormencollectie (afbeeldingen)
      Zo niet, kruis (. Columns(1), Sh.TopLeftCell) is dan niets   ' als het in kolom 1 staat
        Sh.Delete                                                     ' We verwijderen het
      Einde als
    volgende Sh
  Eindigen met
 
Einde Sub

 

2 likes

Sorry, het lijkt een beetje op een "overstroming"...

 

Dus samengevat heb ik een "A"-kolom waar ik het artikelnummer zet (beginnend met regel 2)

 

En in kolom "B" wordt de afbeelding die overeenkomt met het artikelnummer weergegeven wanneer ik op de knop klik (er zijn 2 knoppen met de macro, één om de afbeeldingen weer te geven, één om te verwijderen)

2 likes

Nou ja, eigenlijk wel.....

 

Post op de ... Ik vond het in mijn eentje als een geweldige :p

 

Ik denk dat het kan worden gewist.

 

Fijne dag voor jou!

3 likes

Geef ons de procedure die we moeten volgen via een mini-tutorial indien mogelijk

het kan door anderen worden gebruikt

bedankt @ + ;-)

1 like