Erreur macro si cellule vide

Résolu/Fermé
mickysor - 7 avril 2011 à 20:38
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
- 7 avril 2011 à 21:56
Bonjour,

J'ai une macro comme ceci:
Sub test()
Dim Cell1 As Range
Dim Cell2 As Range
Dim Cell3 As Range

Set Cell1 = Range("D22")
Set Cell2 = Range("D22:D37").Find("*", , xlValues, , , xlPrevious)
Set Cell3 = Worksheets("FD").Columns("C:C").Find("*", , xlValues, , , xlPrevious).Offset(1)
Range(Cell1, Cell2).Copy
Cell3.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Application.CutCopyMode = False

End Sub

Le problème c'est que si je n'ai rien d'inscris dans la rangée d22:d37.la macro me fais une erreur.comment faire pour que si j'ai pas rempli ces cellules que je ne reçoive pas ce méssage d'érreur car ma macro fonctionne bien!

4 réponses

Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
1 751
7 avril 2011 à 21:22
Quelle erreur ?
0
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
1 751
7 avril 2011 à 21:42
Re,

Dans ton exemple, il y a un titre de colonne, si tu changes les règles, c'est normal qu'il y ai une erreur.
Pour éviter l'erreur si la colonne est entièrement vide et pour éviter de recopier le titre de colonne quand la colonne n'est pas renseignée :

Après:
  Set Cell2 = Columns("D:D").Find("*", , xlValues, , , xlPrevious)
Ajouter :
  If Cell2 Is Nothing Then Exit Sub            'colonne vide
  If Cell2.Row < Cell1.Row Then Exit Sub       'colonne non renseignée
0
merci vous êtes des génis!
je suis un réel débutant.ce forum la es riche par son partage de connaissances.
bravo!
0
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
1 751
7 avril 2011 à 21:56
De rien, ici il n'y a pas plus de génie que de lampe magique, seulement des bénévoles qui partagent leurs connaissances.

Au plaisir de te relire.
0