Erreur exécution '1004

Bonjour le forum,

dans la macro suivante, je souhaite afficher les valeurs de cellules sélectionnées seulement si

elles appartiennent à la colonne I, mais j'ai une erreur d'éxécution '1004'.

Je ne vois pas l'erreur....

Sub EditionFicheLot()

Dim cellule As Range

For Each cellule In Selection

If Not Intersect(cellule, Range("I5:I120")) Is Nothing Then
MsgBox cellule

Else
MsgBox "Vous n'avez pas sélectionner de lot."

End If

Next

End Sub

Bonjour,

Chez moi ce code fonctionne sans soucis :
- Où avez vous placé le module ?
- Où avez vous inscrit vos valeurs ?
- Quelles cellules sont sélectionnées avant activation de la macro ?
- La macro est-elle activée via un bouton ?
- Quel est le résultat attendu ?
- Un msgbox pour chaque cellule ou un msgbox récapitulatif de l'ensemble des cellule ?

Désolé pour toutes ces questions, il faut un maximum de détail sur la manipulation que vous réalisez afin de reproduire l'erreur (ou un fichier représentatif contenant l'erreur).

Cdlt,

Le module est placé dans la feuille des cellules sélectionnées, la macro étant activée par un bouton.

Dans un premier temps, il y a un msgbox par cellule, sachant qu'à terme je souhaite un récapitulatif

de l'ensemble des cellules.

Bonjour,

A insérer dans un module standard et non un module de feuille puis le lier à votre forme/bouton :

Sub EditionFicheLot()
Dim cellule As Range, MESS$
If Application.Intersect(Selection, [I5:I120]) Is Nothing Then MsgBox "Vous n'avez pas sélectionner de lot.": Exit Sub
For Each cellule In Selection
    If Not Application.Intersect(cellule, [I5:I120]) Is Nothing Then MESS = MESS & " " & cellule
Next cellule
MsgBox "Vous avez sélectionné les lots " & MESS
End Sub

Avec cette configuration ça s’exécute correctement, en rouge les zones que j'avais sélectionné :

image

Cdlt,

Bonjour,

@Ergotamine,

Sub EditionFicheLot()
Dim Cell As Range, sMsg As String
    If Application.Intersect(Selection, [I5:I120]) Is Nothing Then
        MsgBox "Vous n'avez pas sélectionné de lot."
    Else
        For Each Cell In Selection
            sMsg = sMsg & " " & Cell
        Next Cell
        MsgBox "Vous avez sélectionné le(s) lot(s) " & sMsg
    End If
End Sub

Bonne journée.

Cdlt.

Bonjour Jean-Eric,

Le code que tu proposes est plus lisible, bien que les deux sois fonctionnels, j'approuve !

Cdlt,

Merci à vous deux.

C'est exactement ce que je souhaitais.

Bonjour,

Cdlt.

Rechercher des sujets similaires à "erreur execution 1004"