Constantes non reconnues après collage spécial

guilo49

XLDnaute Nouveau
Bonjour,

après un collage spécial de formules en valeurs réalisées par une macro :

Private Sub Worksheet_Activate()
copie = 1
While copie < 3
Sheets("HideQualiCI1").Range("B5:B24").Copy
Sheets("HideQualiCI1").Range("L5:L24").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
copie = copie + 1
Wend
End Sub

Je voulais recopier ce qu'il y a en L5:L24 pour le coller dans une autre feuille en B5:B24 via les constantes pour ne sélectionner que les cellules non vides et qu'il me colle les valeurs à la suite sans vide dans l'autre onglet. Mais voilà le hic c'est que ça ne fonctionne pas il copie tout mais les cellules vides. J'ai vérifié à la main en faisant ctrl t pour rechercher manuellement les constantes et effectivement il n'arrive pas à les prendre à cause du copier-coller spécial car sinon avec des valeurs rentrées à la main ça fonctionne ??? Je vous met mon autre code vba pour info si vous trouver un autre moyen que par les constantes pour sélectionner uniquement les cellules non vides.

Voilà merci par avance.

Private Sub Worksheet_Activate()
copie = 1
While copie < 3
Sheets("HideQualiCI1").Range("L5:L24").SpecialCells(xlCellTypeConstants, 23).Copy
Sheets("QualiteCI1").Range("B5:B24").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
copie = copie + 1
Wend
End Sub
 

guilo49

XLDnaute Nouveau
Re : Constantes non reconnues après collage spécial

Bonjour, j'ai avancé sur mon problème; j'ai trouvé le moyen de sélectionner les cellules non vides autrement que par les constantes, sauf que maintenant il me colle les données à la suite (ça c'est bien) mais plusieurs fois jusqu'à remplir toute la plage. Par exemple si je n'ai que 2 cellules pleines dans ma plage L5:L24 de la feuille HideQualiCI1 il va me coller dans la plage B5:B24 de la feuille QualiteCI1 sans les cellules vides mais pleins de fois hors je ne les voudrais qu'une seule fois. Par exemple si j'ai 3 cellules pleines, qu'il me colle que les 3 et pas 7 fois les 3 pour remplir la plage. Quelqu'un aurait une idée et me dire où se situe l'erreur dans mon code. Merci.

Code :
Private Sub Worksheet_Activate()
copie = 1
While copie < 3
Dim Plage As Range, cel As Range
Dim i As Integer, j As Integer
i = 1
j = 0
For Each cel In Sheets("HideQualiCI1").Range("L5:L24") '
a = cel.Value
If cel.Value <> "" Then
j = j + 1
If j < 2 Then
Set Plage = cel
Else
Set Plage = Union(Plage, cel)
End If
End If
Next
Plage.Copy
Sheets("QualiteCI1").Range("B5:B24").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
copie = copie + 1
Wend
End Sub
 

Paf

XLDnaute Barbatruc
Re : Constantes non reconnues après collage spécial

Bonjour

peut-être en n'indiquant que le début de plage cible ?

Sheets("QualiteCI1").Range("B5").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False


A+
 

Discussions similaires

Réponses
3
Affichages
547

Statistiques des forums

Discussions
311 705
Messages
2 081 733
Membres
101 807
dernier inscrit
foued