Copier une plage en ignorant les cellules vides [Résolu]

Messages postés
29
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
15 mars 2014
- - Dernière réponse : cs_Le Pivert
Messages postés
6345
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 novembre 2019
- 3 janv. 2011 à 14:23
Bonjour,

Je tente vainement de recopier un plage de cellule d'une feuille à l'autre en ignorant les cellules vides mais sans affecter l'ordre nitial de la plage .
Ci dessous le code que j'ai tenté d'utiliser :

Sub Copie1()
Dim plage As Range
Dim Cel As Range
ActiveWorkbook.Sheets("Feuil6").Select
Set plage = Range("A1:A") & Range("A65536").End(xlUp).Row For Each Cel In plage
If Cel.Value <> "" Then
ActiveWorkbook.Sheets("Feuil7").Range(Cel.Adress) = Cel.Value
End If
Next Cel
End Sub
Message d'erreur : La méthode Range de l'objet_global a échoué.

Merci de votre aide

Cordialement
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
6345
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 novembre 2019
88
3
Merci
Bonjour Gérard et bonne année,
Tu mets ceci :

Sub Copie1()
Dim plage As Range
Dim Cel As Range
ActiveWorkbook.Sheets("Feuil6").Select
Set plage = Range("A1:A" & Range("A65536").End(xlUp).Row)
For Each Cel In plage
If Cel.Value <> "" Then
ActiveWorkbook.Sheets("Feuil7").Range(Cel.Address) = Cel.Value
End If
Next Cel
ActiveWorkbook.Sheets("Feuil7").Select
[A:A].SpecialCells(xlCellTypeBlanks).Delete
End Sub


Cela supprime les cellules vides mais pas les lignes!!!


Bonne année à tous les membres
@+ Le Pivert

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 203 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Le Pivert
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
61
0
Merci
Salut

Si tu as une erreur, il faudrait dire que quelle ligne.

Dans cette ligne
Set plage = Range("A1:A") & Range("A65536").End(xlUp).Row
la parenthèse de fermeture est mal placée.
Range("A1:A") n'est pas une définition de plage correcte
Range("A65536").End(xlUp).Row renvoie un chiffre
>
Set plage = Range("A1:A" & Range("A65536").End(xlUp).Row)


Préfère
If IsEmpty(Cel) Then
a
If Cel.Value <> "" Then


Cel.Adress n'est pas correct : Address avec 2 d

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
Messages postés
29
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
15 mars 2014
0
Merci
Bonjour Jack,

J'ai corrrigé mes fautes d'inattention, c'était le 1er janvier...
Avec If IsEmpty(Cel) Then
ça ne fonctionne pas.
Avec If Cel.Value <> "" Then
ça fonctionne mais ça ne me supprime pas les cellules vides et c'est ce que je voudrais.

Je te redonne mon dernier code ci dessous.

Sub Copie1()
Dim plage As Range
Dim Cel As Range
ActiveWorkbook.Sheets("Feuil6").Select
Set plage = Range("A1:A" & Range("A65536").End(xlUp).Row)
For Each Cel In plage
If Cel.Value <> "" Then
ActiveWorkbook.Sheets("Feuil7").Range(Cel.Address) = Cel.Value
End If
Next Cel
End Sub
A +
Cordialement
Commenter la réponse de gerardmireille