MAcro insertion image: que faire si image absente ?

loulou_yellow

XLDnaute Nouveau
Bonjour

j'ai réalisé une macro me permettant de faire un publipostage:
- il crée un fichier par magasin contenant un onglet par produit

l'onglet contient une zone où je fais insérer l'image correspondante au produit
L'image est nommée par un code à 6 chiffres lié au produit
Un moment dans ma macro je mets ça

ActiveSheet.Pictures.Insert(chemin_image & "\" & code6chiffres & ".JPG").Select

Je souhaiterais savoir comment gérer ça dans le cas où l'image est inexistante (oui car on n'a pas forcément la photo du produit sous la main) sans que ça interrompt mon publipostage en me mettant un message d'erreur parce-que l'image n'existe pas

Merci pour votr aide
 

youky(BJ)

XLDnaute Barbatruc
Re : MAcro insertion image: que faire si image absente ?

Salut loulou,
Va falloir jouer avec la gestion des erreurs.
Exemple
Ton for si il y a
On error resume next
code6chiffres=range( machin)
ActiveSheet.Pictures.Insert(chemin_image & "\" & code6chiffres & ".JPG").Select
if err>0 then err.clear : goto saute
selection.copy
'blabla
saute:
next

Bruno
 

loulou_yellow

XLDnaute Nouveau
Re : MAcro insertion image: que faire si image absente ?

Bonjour

vu que je ne sais pas comment on fait pour mettre mes lignes de code sur ce forum, j'ai joint un fichier excel "Aide macro.xlsx" où j'ai copié ces lignes dans le module1 (en enlevant tout le blabla)

JE te laisse voir pour me dire comment gérer ce message d'erreur de manière à ce qu'il n'apparaisse pas et n'interrompt pas mon publi quand l'image n'existe pas

Au faite le code à 6 chiffres est sous le nom"ua"
Mon publi se fait à partir des infos figurant sur le fichier excel nommé "Tableau publi DT shoes.xlsm"

Au passage quand j'execute ma macro; un moment, je supprime un onglet avant d'enregistrer. LE problème c'est que j'ai toujours un message d'alerte qui apparait (cf image ci-dessous)
Sais-tu aussi comment faire en sorte que ça n'apparait plus

message alerte.jpg

Merci d'avance
 

Pièces jointes

  • Aide macro.xlsx
    8.3 KB · Affichages: 69
  • Aide macro.xlsx
    8.3 KB · Affichages: 77
  • Aide macro.xlsx
    8.3 KB · Affichages: 80
  • message alerte.jpg
    message alerte.jpg
    17.7 KB · Affichages: 70

youky(BJ)

XLDnaute Barbatruc
Re : MAcro insertion image: que faire si image absente ?

Re,
Voici avec la modif
Je n'ai pas testé donc pas affirmatif.
Code:
Sub publipostage_DT_shoes()
'Macro crée par Loulou
Application.ScreenUpdating = False
Dim tab_publi, répertoire, frn, code_frn, ref, j
Dim nbre_ligne, nbre_ref_par_frn, nbre_frn, nbre_ligne_par_frn
Dim indice_ref, fihier_DT, FICHIER_INITIAL, couleur, ua, id, nom_onglet, chemin_image
Dim l, k, m As Integer
 
nbre_ligne = Range("I9999").End(xlUp).Row
Fichier_DT = "C:\Publipostage DT Shoes\DT Shoes - other style.xlsm"
                
On Error Resume Next
                    
For j = 4 To nbre_ligne
                Windows("Tableau publi DT shoes.xlsm").Activate
                
                frn = Cells(j, 4)
                ref = Cells(j, 8)
                ua = Cells(j, 30)
                chemin_image = Cells(2, 2)
                
                
                
       'si nouveau fournisseur
     If frn <> Cells(j - 1, 4).Value Then
            nbre_ref = 1
            nom_onglet = "PRODUIT"
            répertoire = Cells(j, 1)
            nbre_frn = nbre_frn + 1
            Workbooks.Open Filename:= _
                    Fichier_DT
            FICHIER_INITIAL = ActiveWorkbook.Name
            Windows(FICHIER_INITIAL).Activate
      Else
            nbre_ref = nbre_ref + 1
      End If
            
            Windows("Tableau publi DT shoes.xlsm").Activate
            
           'si nouvelle ref
           If ref <> Cells(j + 1, 8) Then
           
              
           
             '
           
              'copie l'onglet PRODUCT SPEC et complète l'onglet
                
                Windows(FICHIER_INITIAL).Activate
                Sheets("PRODUIT").Copy After:=Sheets(nom_onglet)
                ActiveSheet.Name = ref
                nom_onglet = ref
                Range("H7").Value = frn
                Range("I15").Value = ua
                Range("L15").Value = id
                
              
              
                
            'insertion image produit
            If ua <> "" Then
                Windows(FICHIER_INITIAL).Activate
                Range("F24:S37").Select
                ActiveSheet.Pictures.Insert(chemin_image & "\" & ua & "G.JPG").Select
                If Err <> 0 Then Err.Clear: GoTo saute
                Selection.ShapeRange.ScaleHeight 0.5, msoFalse, msoScaleFromTopLeft
                Selection.ShapeRange.IncrementLeft 37.5
                Selection.ShapeRange.IncrementTop 8.25
                
saute:
               
            End If
            
           
       
        End If
                
                 
                'Enregistre le fichier
                Windows("Tableau publi DT shoes.xlsm").Activate
                
        If frn <> Cells(j + 1, 4).Value Then
                Windows(FICHIER_INITIAL).Activate
                Sheets("PRODUIT").Select
                ActiveWindow.SelectedSheets.Delete
                Sheets("GENERAL").Select
                Application.DisplayAlerts = False
                ActiveWorkbook.SaveAs Filename:="" & répertoire & "\" & "TF Shoes - " & frn & ".xls", _
                FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
                ReadOnlyRecommended:=False, CreateBackup:=False
                FICHIER_INITIAL = ActiveWorkbook.Name
                Application.DisplayAlerts = True
            
                Windows(FICHIER_INITIAL).Activate
                ActiveWorkbook.Close
          End If
        Next
                
     Windows("Paramètres publi shoes.xlsx").Activate
     ActiveWorkbook.Close
                     
        

End Sub

Pour ne pas avoir le message avec suppression il faut displayAlert

Application.DisplayAlerts = False
lafeuilleàsupprimer.Delete' supperssion onglet
Application.DisplayAlerts = True

bonne suite
PS pour mettre le code entre balise comme ici aller en mode avancé et cliquer sur # (balise code)
Bruno
 

Discussions similaires

Réponses
39
Affichages
4 K

Statistiques des forums

Discussions
312 176
Messages
2 085 959
Membres
103 065
dernier inscrit
HB ARPF 95