Bonjour,
Je suis en train de me prendre la tête sur une macro qui fonctionne mais qui me renvoie malgré tout une erreur de débogage.
Voila, la macro doit insérer une image (.jpg) stockée dans un répertoire puis copier un petit tableau.
Il s'agit de l'image d'un tissu. Le nom de l'image est sa référence.
Lorsque l'utilisateur saisit la référence de l'image (le nom du fichier JPG) en colonne C, l'image s'insère en colonne A puis le tableau se copie à côté de l'image. Le nom que l'utilisateur a saisi est donc supprimé puisque la copie du tableau est vierge. Le nom est alors récupéré puis recopié dans la cellule où il a été initialement saisi.
Le principe est simple mais ça ne doit pas être évident à comprendre sans le fichier. Je joindrai bien une copie mais il faudrait que je joigne des photos avec.
Si quelqu'un a compris quelque chose (pas évident), je joins le code avec la ligne qui pose problème en couleur rouge :
La macro s'exécute sans problème, mais ça me renvoie toujours une erreur sur la ligne de couleur rouge.
Si quelqu'un comprend le problème, ça serait déjà un exploit.. si par ailleurs il y avait une solution, ça serait un miracle.
Merci d'avance et bonne journée
Je suis en train de me prendre la tête sur une macro qui fonctionne mais qui me renvoie malgré tout une erreur de débogage.
Voila, la macro doit insérer une image (.jpg) stockée dans un répertoire puis copier un petit tableau.
Il s'agit de l'image d'un tissu. Le nom de l'image est sa référence.
Lorsque l'utilisateur saisit la référence de l'image (le nom du fichier JPG) en colonne C, l'image s'insère en colonne A puis le tableau se copie à côté de l'image. Le nom que l'utilisateur a saisi est donc supprimé puisque la copie du tableau est vierge. Le nom est alors récupéré puis recopié dans la cellule où il a été initialement saisi.
Le principe est simple mais ça ne doit pas être évident à comprendre sans le fichier. Je joindrai bien une copie mais il faudrait que je joigne des photos avec.
Si quelqu'un a compris quelque chose (pas évident), je joins le code avec la ligne qui pose problème en couleur rouge :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
[COLOR="Green"]'variable qui récupère le nom du fichier[/COLOR]
Dim Nm As String
[COLOR="Green"]'variable qui récupère la référence du tissu (nom du fichier sans .JPG)[/COLOR]
Dim Nms As String
[COLOR="Green"]'variable qui définit le target.address en colonne C, toutes les 8 lignes[/COLOR]
Dim i As Integer
[COLOR="Green"]'variable qui récupère le tableau à recopier[/COLOR]
Dim z As Range
[COLOR="Green"]'Récupère le nom du fichier une ligne au dessus parce qu'après avoir validé _
le nom se trouve donc juste au dessus[/COLOR]
Nm = ActiveCell.Offset(-1, 0).Value & ".jpg"
Nms = ActiveCell.Offset(-1, 0).Value
[COLOR="Green"]'Définit le tableau à recopier[/COLOR]
Set z = Range("AA1:AK8")
For i = 1 To 30000 Step 8
If Target.Address = "$C$" & i Then
z.Copy
[COLOR="Red"]ActiveCell.Offset(-1, -2).Select[/COLOR]
[COLOR="Green"]'recopie le petit tableau[/COLOR]
ActiveSheet.Paste
[COLOR="Green"]'insère l'image et la dimensionne[/COLOR]
ActiveSheet.Pictures.Insert("G:\Tissu réduit\" & Nm).Select
Selection.ShapeRange.LockAspectRatio = msoTrue
Selection.ShapeRange.Height = 90#
Selection.ShapeRange.Width = 120#
Selection.ShapeRange.Rotation = 0#
[COLOR="Green"]'recopie la référence du tissu qui a été saisie puis effacer lors de la copie du tableau[/COLOR]
ActiveCell.Offset(0, 2).Value = Nms
End If
Next i
End Sub
La macro s'exécute sans problème, mais ça me renvoie toujours une erreur sur la ligne de couleur rouge.
Si quelqu'un comprend le problème, ça serait déjà un exploit.. si par ailleurs il y avait une solution, ça serait un miracle.
Merci d'avance et bonne journée