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

Signaler
Messages postés
29
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
15 mars 2014
-
cs_Le Pivert
Messages postés
6619
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
31 mars 2020
-
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

Messages postés
6619
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
31 mars 2020
100
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
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
64
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)
Messages postés
29
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
15 mars 2014

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