VBA : Collage special

t3tsuo

XLDnaute Nouveau
Bonjour a tous, je souhaite via une macro coller une feuille vers une autre en ne prenant en compte que les lignes visibles.

Voici le code que j'ai fait :

Sub Envoie()

Dim Lig As Long
Dim Col As String
Dim NbrLig As Long
Dim NumLig As Long

Sheets("N").Activate ' feuille de destination

Col = "A"
NumLig = 7
With Sheets("RS")
NbrLig = .Cells(65536, Col).End(xlUp).Row
For Lig = 1 To NbrLig
If .Cells(Lig, Col).Value <> "" Then
.Cells(Lig, Col).EntireRow.Copy
NumLig = NumLig + 1
Cells(NumLig, 1).Select
ActiveSheet.Paste
End If
Next
End With

End Sub

Donc ca ca marche, mais certaines lignes affichent #REF! (surement du fait que les lignes copiees sont en fait des fonctions).mais apres j'ai essaye plusieurs déclinaisons au niveau de
ActiveSheet.Paste
pour le passer en PasteSpecial, comme par exemple :
ActiveSheet.PasteSpecial xlPasteValues
mais rien n'a faire je ne parviens pas a mon resultat,

Excel m'affiche :
Run-time error '1004' PasteSpecial method of Worksheet class failed

Je voulais donc savoir comment faire pour que VBA me fasse un past special value?

EN vous remerciant d'avance pour vos conseils toujours avises,

Cordialement,

T3tsuo

PS : Excel 2003 version US
 
Dernière édition:

t3tsuo

XLDnaute Nouveau
Re : VBA : Collage special

Salut Paritec,

Tu trouveras en PJ un exemple,

De plus j'ai une erreur au niveau de mon "Call" vers mon autre feuille, je ne comprends pas pourquoi.

Si ce n'est pas assez clair, hésite pas !

Je te remercie pour ton temps !

Cdt,

T3tSuO
 

Pièces jointes

  • exemple.xls
    14 KB · Affichages: 136
  • exemple.xls
    14 KB · Affichages: 142
  • exemple.xls
    14 KB · Affichages: 136

Paritec

XLDnaute Barbatruc
Re : VBA : Collage special

Bonjour t3tsuo
alors oui j'ai vu l'exemple je pense comprendre ce que tu veux mais ou est ta macro?
tu parles de Call avec un problème oui mais j'ai pas vu de macro ? ou alors j'ai pas regardé le thisworkbook j'y retourne
a+
Papou :)
 

Paritec

XLDnaute Barbatruc
Re : VBA : Collage special

Re Bonjour t3tsuo,
alors là je ne comprend plus je pensais au début que toutes tes lignes tu les dispatchais dans les feuilles service A B et C , je pense que c'est le cas mais quel est le lien, au départ je pensais les nom tous ensemble les produita_1 mais non c'est pas cela tu peux m'éclairer là dessus?
a+
Papou :)
 
Dernière édition:

t3tsuo

XLDnaute Nouveau
Re : VBA : Collage special

Voila, la tu as le bon, donc la feuille KL sert juste de renvoie a RS, RS sur laquelle j'ai applique une macro pour cacher les lignes vides, et enfin N qui est censé copier coller les lignes de RS sans intervalle (qui pourraient être du aux lignes vides).

Ma question est comment coller les infos en valeur ?

En te remerciant,

Cordialement,

T3tSuO
 

Pièces jointes

  • exemple.xls
    34.5 KB · Affichages: 116
  • exemple.xls
    34.5 KB · Affichages: 116
  • exemple.xls
    34.5 KB · Affichages: 114

Paritec

XLDnaute Barbatruc
Re : VBA : Collage special

Re Re t3tsuo,
alors là c'est encore pire maintenant que j'ai les macros
Pourrais tu m'expliquer a quoi sert ta macro Hunide?
et les autres??????
Car pour moi aucune ne peut fonctionner et franchement sans explications difficile de t'envoyer une réponse.
Merci d'expliquer dans le fichier ce que tu as et ce que tu veux obtenir

Ma question est comment coller les infos en valeur ? de ou à ou ???
a+
Papou :)
 

Paritec

XLDnaute Barbatruc
Re : VBA : Collage special

Re t3tsuo
voilà ton fichier avec une copie de ce que tu as en feuille N vers la feuille RS en dessous de ce que tu as déjà mais on peux bien sur le mettre ou tu veux en A1 si tu le dis
a+
papou :)
 

Pièces jointes

  • exempleV1.zip
    18 KB · Affichages: 61
  • exempleV1.zip
    18 KB · Affichages: 61
  • exempleV1.zip
    18 KB · Affichages: 60
Dernière édition:

t3tsuo

XLDnaute Nouveau
Re : VBA : Collage special

Re Paritec, désole de pas avoir répondu plus tôt,

En fait, le unhide puis hide me sert a rafraichir la feuille RS par rapport aux MAJ effectuees en KL ! (y'a peut etre un autre moyen de le faire, je ne sais pas, mais je me suis rendu compte que si je rajoutais des lignes en KL, vu que RS préalablement les a masquées, il ne les reconnaissait plus, d'ou le refresh).

Je regarde ton dossier et je te dis si c'est bon !

Merci en tout cas,

T3tsuo
 

t3tsuo

XLDnaute Nouveau
Re : VBA : Collage special

Salut Paritec, désole de te répondre si tard, donc en fait c'est presque parfait ^^.

C'est exactement le type de paste special que je souhaite, néanmoins, je souhaite que cela ne copie que les lignes ayant quelque chose d'écrit, ou que les lignes visibles -au choix (d'ou la macro hide :D) !

Pour reprendre ton exemple, ta macro donne :

B 1/2/2010 20
C 1/3/2010 30
D 1/4/2010 40

E 1/5/2010 50
F 1/6/2010 60
H 1/7/2010 70

I 1/8/2010 80
J 1/9/2010 90

Je souhaiterais :

B 1/2/2010 20
C 1/3/2010 30
D 1/4/2010 40
E 1/5/2010 50
F 1/6/2010 60
H 1/7/2010 70
I 1/8/2010 80
J 1/9/2010 90

Si tu pouvais y rejeter un dernier coup d'oeil et apres je te laisse tranquille stp :D:D:D

Merci pour tout en tout cas,

T3tSuO
 

YANN-56

XLDnaute Barbatruc
Re : VBA : Collage special

Bonsoir tais-toi sumo :) , Paritec, et à ceux qui passeront par là.

Pour ma part, je ferais une copie globale de la feuille d'origine,
et puis, seulement après, je supprimerais les lignes vides.

Il restera évidemment à gérer d'éventuelles formules
devenues fausses par suite de cette suppression.

A voir.

Amicalement.

Yann
 

Staple1600

XLDnaute Barbatruc
Re : VBA : Collage special

Bonsoir à tous

Une autre façon de faire
(test ok sur le fichier fourni par Paritec à 20h46)
Code:
Sub a()
Dim DE_A_je As Range, Vers_B As Range
Application.ScreenUpdating = False
With Sheets(1)
    .[A1].End(xlDown).AutoFilter 1, "<>"
    Set DE_A_je = .[_FilterDataBase].SpecialCells(12)
    Set Vers_B = Sheets(2).[A65536].End(xlUp)(2)
    DE_A_je.Copy Vers_B
    .AutoFilterMode = False
End With
End Sub
Code:
Sub a_light()
Application.ScreenUpdating = False
Sheets(1).[A1].End(xlDown).AutoFilter 1, "<>"
Sheets(1).[_FilterDataBase].SpecialCells(12).Copy Sheets(2).[A65536].End(xlUp)(2)
Sheets(1).AutoFilterMode = False
End Sub
 

t3tsuo

XLDnaute Nouveau
Re : VBA : Collage special

Bonjour les gens,

Desole de vous repondre si tardivement, mais je tenais a vous remercier, tout marche, j'ai reussi a adapter vos codes a mon fichier :)

Donc encore une fois, un grand merci aux membres de ce forum :cool:

T3tSuO
 

Discussions similaires

Réponses
2
Affichages
187
Réponses
1
Affichages
205

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 611
Messages
2 090 226
Membres
104 453
dernier inscrit
benjiii88