Copier une plage en ignorant les cellules vides

Résolu
gerardmireille Messages postés 29 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 15 mars 2014 - 1 janv. 2011 à 17:51
cs_Le Pivert Messages postés 7823 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 30 septembre 2022 - 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

3 réponses

cs_Le Pivert Messages postés 7823 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 30 septembre 2022 134
3 janv. 2011 à 14:23
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
3
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
2 janv. 2011 à 10:10
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)
0
gerardmireille Messages postés 29 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 15 mars 2014
2 janv. 2011 à 15:11
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
0