copy après resize qui ne marche pas

Blafi

XLDnaute Occasionnel
Bonjour le forum,

Dans l'exemple de fichier joint (fichier d'origine expurgé), j'ai, grâce à une macro analysé les adresses mail figurant dans la feuille Labase et j'ai obtenu en colonne G une information me disant "VRAI" si cette adresse email ne présente pas de caractère interdit et "FAUX" si l'adresse est fausse car contenant des caractères interdits. (Normalement j'ai une liste de 1400 personnes et email à étudier, ce qui explique que je procède par macro pour étudier ces adresses...)

Je désire ensuite sélectionner dans chaque cellule de la colonne G de la feuille LaBase, celles étant "vide" et celles étant "FAUX" pour copier toutes les cellules de la ligne correspondante (n°, Nom,Prénom, mail et valeur en G) dans la feuille Email Faux.
J'ai essayé d'utiliser une boucle for... next dans laquelle un resize est sensé redimensionner la plage à copier (n°, Nom,Prénom, mail et valeur en G) ...... mais ça ne marche pas. Ma macro ne copie rien ...

Quelqu'un peut-il m'aider à régler mon pb en m'indiquant où est mon erreur de programmation ,

Merci d'avance.
 

Pièces jointes

  • email faux.xlsm
    82.3 KB · Affichages: 28

Yaloo

XLDnaute Barbatruc
Re : copy après resize qui ne marche pas

Bonsoir Blafi, le forum,

Si tu as beaucoup de lignes, il faut peut-être éviter les boucles (un peu long).
Mais plutôt utiliser les filtres, voir la macro ci-dessous
VB:
Option Explicit

Sub ListeMailFaux()
Sheets("Email Faux").Cells.ClearContents
  ActiveSheet.[A1].CurrentRegion.AutoFilter Field:=7, Criteria1:="=FAUX", Operator:=xlOr, Criteria2:="="
  [A1:G20000].SpecialCells(xlCellTypeVisible).Copy Sheets("Email Faux").[A1]
  Selection.AutoFilter
End Sub

A te relire

Martial
 

Paf

XLDnaute Barbatruc
Re : copy après resize qui ne marche pas

Bonjour à tous

Le resize fonctionne bien mais ....

CelF.Resize(1, 7).Copy va copier les 7colonnes à droite de la position courante. Et la position courante est en colonne ... G

Une solution serait de décaler avant le resize:
CelF.Offset(0, -6).Resize(1, 7).Copy


par ailleurs le test sur CelF.Value est à modifier car le fait d'y mettre des valeurs Vrai ou Faux le fait considérer en tant que Boolean

If Not CelF.Value Or CelF.Value = "" Then

A+
 

Blafi

XLDnaute Occasionnel
Re : copy après resize qui ne marche pas

Merci Yaloo et Paf pour ces informations..

La méthode du filtre est possible et je l'essayerais si j'ai beaucoup de lignes à traiter.
Normalement, je traite entre 5 et 50 lignes à la fois, ce qui ne dure (quand j'arrive à écrire une bonne macro ) pas trop longtemps.
Je ne savais pas exactement comment travaillait resize, je comprends maintenant pourquoi ma macro était "foireuse"...

Je vais donc essayer tout cela et vous tiendrais au courant.

Merci de votre aide.
Cordialement.
 

Discussions similaires

Réponses
2
Affichages
113

Statistiques des forums

Discussions
312 192
Messages
2 086 054
Membres
103 109
dernier inscrit
boso_vs_viking