• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Foto's opslaan met benaming tevinden in zelfde excel

Status
Niet open voor verdere reacties.

BricksetforYou

Gebruiker
Lid geworden
22 jan 2023
Berichten
11
Goedeavond allen,

Ik ben al een tijdje aan het zoeken naar ene macro die het volgende kan doen voor mij. Ik zelf geraak er absoluut niet meer uit.

In kolom A vinden jullie een aantal foto's.

In de kolom C vinden jullie de benaming die ik zou gebruiken om de foto's te benoemen.

Kan er een macro gemaakt worden om de foto's in de kolom A op te slaan met de naam van kolom C?
 

Bijlagen

  • test fotos.xlsx
    123 KB · Weergaven: 25
Met:
Code:
Sub hsv()
Dim sh As Shape
For Each sh In ActiveSheet.Shapes
 sh.Name = sh.TopLeftCell.Offset(, 2)
Next sh
End Sub
 
HSV bedankt voor uw hulp,

Ik heb net deze macro geprobeerd maar helaas gebeurd er niets.
 
De plaatjes worden hier netjes herbenoemd.
 
Was dat de vraag dan?
 
Harry,

De plaatsjes die in kolom A staan moeten opgeslagen worden in een map met als naam de naam in de kolom C. Naam is bijvoorbeeld " 6284585 "
 
Doe dit eens:
Code:
Sub CommandButton1_Click()
    Dim objPic As Shape
    Dim objChart As Chart
    
    Application.ScreenUpdating = False
    Sheets.Add
    ActiveSheet.Name = "TMP"
    
    For Each sh In Sheets("Blad1").Shapes
        sh.CopyPicture xlScreen, xlPicture
        With Sheets("TMP")
            .Shapes.AddChart
            .Shapes.Item(1).Width = sh.Width
            .Shapes.Item(1).Height = sh.Height
            .Shapes.Item(1).Select
        End With
        
        Set objChart = ActiveChart
        objChart.Paste
        objChart.Export ThisWorkbook.Path & "\" & sh.TopLeftCell.Offset(, 2) & ".jpg"
    Next sh
    
    Application.DisplayAlerts = False
    Sheets("TMP").Delete
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub
 
Code:
Public Sub ExportAndRename()
    With Worksheets("Blad1")
        For Each oShape In .Shapes
            Set oChart = .ChartObjects.Add(oShape.Left, oShape.Top, oShape.Width, oShape.Height)
            oShape.Copy
            oChart.Select
            ActiveChart.Paste
            ActiveChart.Export ThisWorkbook.Path & "\" & oShape.TopLeftCell.Offset(0, 2).Value & ".png", "PNG"
            Application.Wait DateAdd("s", 1, Now)
            oChart.Delete
            DoEvents
        Next
    End With
End Sub
 
Laatst bewerkt:
Heykes ed,

ik krijg een foutmelding bij de volgende zin

objChart.Export ThisWorkbook.Path & "" & sh.TopLeftCell.Offset(, 2) & ".jpg"
 
Als je een foutmelding krijgt, vertel er dan ook bij welke dat is.
Probeer ook die van Alphamax.
Bij mij werkt die van mij prima.
 

Bijlagen

  • Plaatjes.jpg
    Plaatjes.jpg
    150,8 KB · Weergaven: 21
Laatst bewerkt:
Je moet het bestand eerst eens opslaan op je harde schijf, anders geeft ThisWorkbook.Path een fout.
De foto's staan daarna in dezelfde map, als de map waar je het bestand hebt opgeslagen.
 
Ben je de backslash niet vergeten?
Code:
objChart.Export ThisWorkbook.Path & "[COLOR=#ff0000]\[/COLOR]" & sh.TopLeftCell.Offset(, 2) & ".jpg"
 
Het forum verwijderd die als je geen codetags gebruikt.
 
Waarom zoveel charts creëren als het aantal afbeeldingen? Dat kan toch gewoon met 1 chart ?
En gebruik vooral geen 'select'.

Code:
Sub M_snb()
  With Worksheets("Blad1")
    .ChartObjects.Add(1, 1, 100, 100)
    For it In .Shapes
      it.Copypicture
      .charts(1).Paste
      .charts(1).Export G:\OF\" & it.TopLeftCell.Offset(, 2) & ".png", "PNG"
    Next
   .charts(1).delete
  End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan