Sujet : Problème d'ajustement d'image dans Excel

Bonjour à tous,

Je travaille à insérer une image dans une feuille Excel. Mon objectif est de positionner l'image précisément entre les cellules A6 et F20. Cependant, voici le problème :

La première fois que je lance mon code, l'image mord sur la ligne 20 et ne s'étend pas jusqu'à la fin de la colonne F.

Si je relance le code une seconde fois, tout fonctionne parfaitement.

Voici un extrait de mon code :

Sub CreerTrame()
    Dim ws As Worksheet
    Dim wb As Workbook
    Dim imgPath As String
    Dim imgPath2 As String
    Dim NomFichier As String
    Dim NomFeuille As String
    Dim cheminFichier As String
    Dim img As Shape
    Dim cell As Range

    ' Récupérer le nom du fichier cible à partir de la cellule H2 de la Feuil2 de TEST4
    NomFichier = ThisWorkbook.Sheets("Feuil1").Range("A3").Value
    cheminFichier = "\\cheminmodifierfichier\" & NomFichier & ".xlsx"

    ' Vérifier si le fichier existe avant de continuer
    If Dir(cheminFichier) = "" Then
        MsgBox "Le fichier '" & cheminFichier & "' n'existe pas. Veuillez vérifier le chemin ou le nom.", vbExclamation
        Exit Sub
    End If

    ' Ouvrir le fichier externe
    Set wb = Workbooks.Open(cheminFichier)

    ' Récupérer le nom de la feuille cible (valeur de H2 dans Feuil2 de TEST4)
    NomFeuille = ThisWorkbook.Sheets("Feuil1").Range("B3").Value

    ' Vérifier si la feuille existe dans le fichier ouvert
    On Error Resume Next
    Set ws = wb.Sheets(NomFeuille)
    On Error GoTo 0

    If ws Is Nothing Then
        MsgBox "La feuille '" & NomFeuille & "' est introuvable dans le fichier '" & NomFichier & "'.", vbExclamation
        wb.Close False
        Exit Sub
    End If

    ' Spécifier le chemin de l'image
    imgPath = "C:\Users\blabla\OneDrive - lala\Documents\image test.jpg" ' Remplacez par le chemin de votre image
    imgPath2 = "C:\Users\balbla\Downloads\llala.png"

  ' Définir la plage de cellules
    Set plage = ws.Range("A6:F20")

    ' Calculer la largeur et la hauteur de la plage
    imgWidth = plage.Width
    imgHeight = plage.Height

    ' Définir la cellule de départ
    Set cell = ws.Range("A6")

    ' Ajouter l'image
    Set img = ws.Shapes.AddPicture(Filename:=imgPath, _
                                   LinkToFile:=msoFalse, _
                                   SaveWithDocument:=msoTrue, _
                                   Left:=cell.Left, _
                                   Top:=cell.Top, _
                                   Width:=imgWidth, _
                                   Height:=imgHeight)

    ' S'assurer que l'image est bien positionnée dans la plage de cellules
    img.LockAspectRatio = msoFalse ' Désactiver le verrouillage du ratio pour redimensionner librement
    img.Width = imgWidth           ' Redimensionner à la largeur de la plage
    img.Height = imgHeight         ' Redimensionner à la hauteur de la plage

    ' Ajuster la position de l'image en fonction de la cellule de départ
    img.Top = cell.Top
    img.Left = cell.Left

Set cell = ws.Range("A1")

 'Calculer la position Left à la moitié entre A1 et B2
leftPos = (ws.Range("A1").Left + ws.Range("B2").Left) * (2 / 4)

' Utiliser la hauteur de la plage E43:E47 comme la hauteur de l'image
heightPos = ws.Range("A1:A2").Height

' Laisser la largeur de l'image pour qu'elle soit limitée entre D43 et F48
widthPos = ws.Range("B2").Left - ws.Range("A1").Left

' Ajouter l'image dans la feuille à la position calculée
Set img = ws.Shapes.AddPicture(Filename:=imgPath2, _
                               LinkToFile:=msoFalse, _
                               SaveWithDocument:=msoTrue, _
                               Left:=leftPos, _
                               Top:=cell.Top, _
                               Width:=widthPos, _
                               Height:=heightPos)

' Ajuster les dimensions de l'image pour qu'elle ne déborde pas
With img
    ' Respecter l'aspect ratio de l'image
    .LockAspectRatio = msoTrue

    ' Ajuster la largeur et la hauteur à la taille de la cellule sans la déformer
    If .Width > ws.Range("D42:F48").Width Then
        .Width = ws.Range("D42:F48").Width
    End If
    If .Height > ws.Range("D42:F48").Height Then
        .Height = ws.Range("D42:F48").Height
    End If
End With

'MON CODE

    ' Ajustement des colonnes
    ws.Columns("A:F").ColumnWidth = 12

    ' Définir la zone d'impression
    ws.PageSetup.PrintArea = "A1:F48"

    ' Ajuster la mise en page pour une seule page (ajuster à la largeur et à la hauteur)
    With ws.PageSetup
        .FitToPagesWide = 1 ' Ajuster pour tenir sur une seule colonne de largeur
        .FitToPagesTall = 1 ' Ajuster pour tenir sur une seule page de hauteur
    End With

    ' Ligne 1 et 2
    With ws.Range("A1:B2")
        .Merge
        .Interior.Color = RGB(200, 200, 200)
        .Borders.Weight = xlThin
    End With

    With ws.Range("C1:D2")
        .Merge
        .Value = "EPR2-NM2201"
        .Font.Bold = True
        .Font.Size = 8
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Interior.Color = RGB(200, 200, 200)
        .Borders.Weight = xlThin
    End With

    With ws.Range("E1:F2")
        .Merge
        .Value = "Ingénierie rv"
        .Font.Bold = True
        .Font.Size = 8
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Interior.Color = RGB(200, 200, 200)
        .Borders.Weight = xlThin
    End With

    ' Ligne 3 à 5
    With ws.Range("A3:C5")
        .Merge
        .Value = "FloE"
        .Font.Bold = True
        .Font.Size = 14
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

Dim valeurD3 As String
valeurD3 = ws.Range("D3").Value
    With ws.Range("D3:F5")
        .Merge
        .Value = valeurD3
        .Font.Bold = True
        .Font.Size = 12
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Ligne 6 à 20 fusionnée
    ws.Range("A6:F20").Merge
    ws.Range("A6:F20").Borders.Weight = xlThin

    ' Ligne A21 à C23 fusionnée
    With ws.Range("A21:C23")
        .Merge
        .Value = "Numéro interne :"
        .Font.Bold = True
        .Font.Size = 10
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Ligne D21 à F23 fusionnée
    With ws.Range("D21:F23")
        .Merge
        .Value = "bebe"
        .Font.Bold = True
        .Font.Size = 10
        .Font.Name = "Arial"
        .Font.Color = RGB(255, 0, 0)
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Ligne A24 à B28 fusionnée et "INDICATEURS" en gras blanc sur fond rouge
    ' Conserver la valeur avant la fusion

Dim valeurA24 As String
valeurA24 = ws.Range("A24").Value

    With ws.Range("A24:B26")
        .Merge
        .Value = valeurA24
        .Font.Bold = True
        .Font.Color = RGB(255, 255, 255) ' Blanc
        .Font.Size = 9
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Interior.Color = RGB(255, 0, 0) ' Rouge
        .Borders.Weight = xlThin
    End With

    ' Conserver la valeur avant la fusion
Dim valeurA27 As String
valeurA27 = ws.Range("A27").Value

    With ws.Range("A27:A28")
        .Merge
        .Value = valeurA27
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Conserver la valeur avant la fusion
Dim valeurB27 As String
valeurB27 = ws.Range("B27").Value

    With ws.Range("B27:B28")
        .Merge
        .Value = valeurB27
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Conserver la valeur avant la fusion
Dim valeurB29 As String
valeurB29 = ws.Range("B29").Value

     With ws.Range("B29:B30")
        .Merge
        .Value = valeurB29
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Conserver la valeur avant la fusion
Dim valeurB31 As String
valeurB31 = ws.Range("B31").Value

    With ws.Range("B31:B32")
        .Merge
        .Value = valeurB31
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

   ' Conserver la valeur avant la fusion
Dim valeurB33 As String
valeurB33 = ws.Range("B33").Value

  With ws.Range("B33:B34")
        .Merge
        .Value = valeurB33
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Conserver la valeur avant la fusion
Dim valeurB35 As String
valeurB35 = ws.Range("B35").Value

    With ws.Range("B35:B36")
        .Merge
        .Value = valeurB35
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Ligne C24 à D24 fusionnée et "INDICATIONS"
    ' Conserver la valeur avant la fusion
Dim valeurC24 As String
valeurC24 = ws.Range("C24").Value

    With ws.Range("C24:D26")
        .Merge
        .Value = valeurC24
        .Font.Bold = True
        .Font.Color = RGB(255, 255, 255)
        .Font.Size = 9
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Interior.Color = RGB(255, 0, 0) ' Rouge
        .Borders.Weight = xlThin
    End With

    ' Conserver la valeur avant la fusion
Dim valeurA29 As String
valeurA29 = ws.Range("A29").Value

    With ws.Range("A29:A30")
        .Merge
        .Value = valeurA29
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Conserver la valeur avant la fusion
Dim valeurA31 As String
valeurA31 = ws.Range("A31").Value

    With ws.Range("A31:A32")
        .Merge
        .Value = valeurA31
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Conserver la valeur avant la fusion
Dim valeurA33 As String
valeurA33 = ws.Range("A33").Value

     With ws.Range("A33:A34")
        .Merge
        .Value = valeurA33
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Conserver la valeur avant la fusion
Dim valeurA35 As String
valeurA35 = ws.Range("A35").Value

 With ws.Range("A35:A36")
        .Merge
        .Value = valeurA35
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Conserver la valeur avant la fusion
Dim valeurC27 As String
valeurC27 = ws.Range("C27").Value

   With ws.Range("C27:C30")
        .Merge
        .Value = valeurC27
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Conserver la valeur avant la fusion
Dim valeur27 As String
valeurD27 = ws.Range("D27").Value

       With ws.Range("D27:D30")
        .Merge
        .Value = valeurD27
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

      ' Conserver la valeur avant la fusion
Dim valeurC31 As String
valeurC31 = ws.Range("C31").Value

      With ws.Range("C31:C33")
    .Merge
    .Value = valeurC31 & Chr(10) ' Ajout d'un retour à la ligne
    .Font.Bold = True
    .Font.Size = 7
    .Font.Name = "Arial"
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
    .Borders.Weight = xlThin
    .WrapText = True ' Cette ligne permet à Excel d'afficher correctement le texte sur plusieurs lignes
End With

    ' Conserver la valeur avant la fusion
Dim valeurD31 As String
valeurD31 = ws.Range("D31").Value

    With ws.Range("D31:D33")
        .Merge
        .Value = valeurD31
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Conserver la valeur avant la fusion
Dim valeurC34 As String
valeurC34 = ws.Range("C34").Value

    With ws.Range("C34:C36")
        .Merge
        .Value = valeurC34 & Chr(10)
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Conserver la valeur avant la fusion
Dim valeurD34 As String
valeurD34 = ws.Range("D34").Value

    With ws.Range("D34:D36")
        .Merge
        .Value = valeurD34
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Conserver la valeur avant la fusion
Dim valeurE24 As String
valeurE24 = ws.Range("E24").Value

    ' Ligne E24 à F26 fusionnée et "ACTEURS"
    With ws.Range("E24:F26")
        .Merge
        .Value = valeurE24
        .Font.Bold = True
        .Font.Color = RGB(255, 255, 255)
        .Font.Size = 9
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Interior.Color = RGB(255, 0, 0) ' Rouge
        .Borders.Weight = xlThin
    End With

' Conserver la valeur avant la fusion
Dim valeurE27 As String
valeurE27 = ws.Range("E27").Value

' Fusionner les cellules E27 et E28
With ws.Range("E27:E28")
    .Merge
    .Value = valeurE27  ' Réaffecter la valeur précédemment stockée
    .Font.Bold = True
    .Font.Size = 7
    .Font.Name = "Arial"
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
    .Borders.Weight = xlThin
End With

   ' Conserver la valeur avant la fusion
Dim valeurF27 As String
valeurF27 = ws.Range("F27").Value

   With ws.Range("F27:F28")
        .Merge
        .Value = valeurF27
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

' Conserver la valeur avant la fusion
Dim valeurE29 As String
valeurE29 = ws.Range("E29").Value

With ws.Range("E29:E31")
        .Merge
        .Value = valeurE29 & Chr(10)
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

   ' Conserver la valeur avant la fusion
Dim valeurF29 As String
valeurF29 = ws.Range("F29").Value

   With ws.Range("F29:F31")
        .Merge
        .Value = valeurF29
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Conserver la valeur avant la fusion
Dim valeurE32 As String
valeurE32 = ws.Range("E32").Value

    With ws.Range("E32:E33")
        .Merge
        .Value = valeurE32 & Chr(10)
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Conserver la valeur avant la fusion
Dim valeurF32 As String
valeurF32 = ws.Range("F32").Value

     With ws.Range("F32:F33")
        .Merge
        .Value = valeurF32
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Conserver la valeur avant la fusion
Dim valeurE34 As String
valeurE34 = ws.Range("E34").Value

     With ws.Range("E34:E36")
        .Merge
        .Value = valeurE34 & Chr(10)
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Conserver la valeur avant la fusion
Dim valeurF34 As String
valeurF34 = ws.Range("F34").Value

     With ws.Range("F34:F36")
        .Merge
        .Value = valeurF34
        .Font.Bold = True
        .Font.Size = 7
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Ligne A39 à F39 fusionnée et "LEGENDE" en gras noir sur fond rouge
    Dim valeurA37 As String
valeurA37 = ws.Range("A37").Value
    With ws.Range("A37:F38")
        .Merge
        .Value = valeurA37
        .Font.Bold = True
        .Font.Size = 10
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    Dim valeurA39 As String
valeurA39 = ws.Range("A39").Value
    With ws.Range("A39:C41")
        .Merge
        .Value = valeurA39
        .Font.Bold = True
        .Font.Size = 9
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Interior.Color = RGB(192, 230, 245)
        .Borders.Weight = xlThin
    End With

    Dim valeurD39 As String
valeurD39 = ws.Range("D39").Value
    With ws.Range("D39:F41")
        .Merge
        .Value = valeurD39
        .Font.Bold = True
        .Font.Size = 9
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Interior.Color = RGB(251, 226, 213)
        .Borders.Weight = xlThin
    End With

    ' Ligne A43 à C47 fusionnée
    Dim valeurA42 As String
valeurA42 = ws.Range("A42").Value
    With ws.Range("A42:C48")
        .Merge
        .Value = valeurA42
        .Font.Bold = True
        .Font.Size = 9
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

    ' Ligne D44 à D47 fusionnée
   Dim valeurD42 As String
valeurD42 = ws.Range("D42").Value
    With ws.Range("D42:F48")
        .Merge
        .Value = valeurD42
        .Font.Bold = True
        .Font.Size = 9
        .Font.Name = "Arial"
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .Borders.Weight = xlThin
    End With

  ' Ajuster automatiquement la hauteur de la ligne 24

ws.Rows("3").AutoFit
ws.Rows("3").RowHeight = 7
ws.Rows("6").AutoFit
ws.Rows("6").RowHeight = 10
ws.Rows("7").AutoFit
ws.Rows("7").RowHeight = 10
ws.Rows("8").AutoFit
ws.Rows("8").RowHeight = 10
 ' Ajuster automatiquement la hauteur de la ligne 24
ws.Rows("24").AutoFit
ws.Rows("24").RowHeight = 20
 ' Ajuster automatiquement la hauteur de la ligne 27
ws.Rows("27").AutoFit
ws.Rows("27").RowHeight = 20
 ' Ajuster automatiquement la hauteur de la ligne 29
ws.Rows("29").AutoFit
ws.Rows("29").RowHeight = 20
  ' Ajuster automatiquement la hauteur de la ligne 31
ws.Rows("31").AutoFit
ws.Rows("31").RowHeight = 20
 ' Ajuster automatiquement la hauteur de la ligne 32
ws.Rows("32").AutoFit
ws.Rows("32").RowHeight = 20
 ' Ajuster automatiquement la hauteur de la ligne 29
ws.Rows("34").AutoFit
ws.Rows("34").RowHeight = 20
 ' Ajuster automatiquement la hauteur de la ligne 29
ws.Rows("37").AutoFit
ws.Rows("37").RowHeight = 20
' Ajuster automatiquement la hauteur de la ligne 29
ws.Rows("39").AutoFit
ws.Rows("39").RowHeight = 10
' Ajuster automatiquement la hauteur de la ligne 29
ws.Rows("41").AutoFit
ws.Rows("41").RowHeight = 10
' Ajuster automatiquement la hauteur de la ligne 29
ws.Rows("42").AutoFit
ws.Rows("42").RowHeight = 7
' Ajuster automatiquement la hauteur de la ligne 29
ws.Rows("43").AutoFit
ws.Rows("43").RowHeight = 7
' Ajuster automatiquement la hauteur de la ligne 29
ws.Rows("44").AutoFit
ws.Rows("44").RowHeight = 7
' Ajuster automatiquement la hauteur de la ligne 29
ws.Rows("45").AutoFit
ws.Rows("45").RowHeight = 7
' Ajuster automatiquement la hauteur de la ligne 29
ws.Rows("46").AutoFit
ws.Rows("46").RowHeight = 7
' Ajuster automatiquement la hauteur de la ligne 29
ws.Rows("47").AutoFit
ws.Rows("47").RowHeight = 7
' Ajuster automatiquement la hauteur de la ligne 29
ws.Rows("48").AutoFit
ws.Rows("48").RowHeight = 7
 'wb.Save
    ' Fermer le fichier
    'wb.Close

    MsgBox "La mise en forme a été appliquée au fichier : " & fichierNom, vbInformation

Bonjour,

si votre code fonctionne la deuxième fois c'est qu'Excel ne touche plus aux différentes cellules déjà formatées lors de la première rotation, ce qui fait que votre image est "collée" avec les bonnes dimension sur une feuille qui ne changera pas d'aspect.

Essayez de déplacer l'insertion de l'image à la suite des toutes les modifications de cellules...
Il y aurait je pense du nettoyage à faire dans ce code... Mais sans fichier avant/après application du code je ne me lance pas là dedans...

@ bientôt

LouReeD

Parfait merci j'ai bien réussi

Bonjour,

Une autre méthode est de donner un paramètre de non modification en fonction des cellules.

Mais bon, inverser le code reste simple.

Merci de votre retour et remerciement !

@ bientôt

LouReeD

Rechercher des sujets similaires à "sujet probleme ajustement image"