collage spéciale avec une macro

alfonso

XLDnaute Junior
bonjour j'ai fait une macro qui me copie des cellules d'un fichier vers un autre fichier mais le probleme c'est qu'il doit me coller uniquement la valeur pas les formules

voila la macro

For ligne = 13 To 20
For colonne = 22 To 24
If Cells(ligne, colonne).Value > 0 Then Cells(ligne, colonne).Select

Selection.Copy
Windows("essai2.xls").Activate
Cells(ligne, colonne).Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlValues
Next colonne
Next ligne

probleme j'ai une erreur a la ligne Selection.PasteSpecial Paste ....
car les cellule fusionné doit etre de taille identique

pouvez vous m'aidez ??
 

Pierrot93

XLDnaute Barbatruc
Re : collage spéciale avec une macro

Bonjour Alfonso

peut être comme ci dessous, à tester dans ton projet :

Code:
For ligne = 13 To 20
    For colonne = 22 To 24
        If Cells(ligne, colonne).Value > 0 Then
            Cells(ligne, colonne).Copy
            With Workbooks("essai2.xls").[B]Sheets(1).[/B]Cells(ligne, colonne)
                .PasteSpecial Paste:=xlValues
            End With
        End If
    Next colonne
Next ligne

bonne journée
@+

edition : rajouté la feuille du 2ème classeur...
 
Dernière édition:

alfonso

XLDnaute Junior
Re : collage spéciale avec une macro

bonjour

merci de ta réponse

ca marche nikel merci

je voudrais savoir un autre truc peut on changer dans l'instruction apres le then les cellules qui doit me copié

j'explique
For ligne = 13 To 20
For colonne = 22 To 24
If Cells(ligne, colonne).Value > 0 Then
tu me copie toute la ligne dont la cellules(ligne,colonne) >0 (exemple la ligne de D13 à X13)
et tu me la colle dans mon fichier essai2.xls en commencant par la ligne 1 etc...

est-ce que c'est clair ou doi-je réexpliquer
 
Dernière édition:

alfonso

XLDnaute Junior
Re : collage spéciale avec une macro

ou je l'avait remarquer mais apres avoir poster
sinon
je voudrais savoir un autre truc peut on changer dans l'instruction apres le then les cellules qui doit me copié

j'explique

Citation:
For ligne = 13 To 20
For colonne = 22 To 24
If Cells(ligne, colonne).Value > 0 Then

tu me copie toute la ligne dont la cellules(ligne,colonne) >0 (exemple la ligne de D13 à X13)
et tu me la colle dans mon fichier essai2.xls en commencant par la ligne 1 etc...

est-ce que c'est clair ou doi-je réexpliquer
 

Pierrot93

XLDnaute Barbatruc
Re : collage spéciale avec une macro

Re

si j'ai bien compris :

Code:
For ligne = 13 To 20
    For colonne = 22 To 24
        If Cells(ligne, colonne).Value > 0 Then
            Range(Cells(ligne, 4), Cells(ligne, 24)).Copy
            With Workbooks("essai2.xls").Sheets(1).Range("D" & ligne)
                .PasteSpecial Paste:=xlValues
            End With
        End If
    Next colonne
Next ligne

au risque de faire plusieurs fois la même action, a voir dans ton projet...

@+
 

alfonso

XLDnaute Junior
Re : collage spéciale avec une macro

j'ai pas compris pourquoi je doit répété ca plusieur fois ? et autre chose ou dois-je indiquer le nom de la feuille source ou il diot me copier les cellules
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : collage spéciale avec une macro

Re

non, c'est la copie qui aura lieu plusieurs fois, puisque qu'il y a une boucle qui test par colonnes / lignes... mais bon, c'est les mêmes données qui seront copiées...

Pour le nom de la feuille de destination, modie la ligne de code comme suit :

Code:
With Workbooks("essai2.xls").Sheets("NomDeTaFeuille").Range("D" & ligne)

la fuille source est la feuille active du classeur actif.

chez moi ce code fonctionnait (Excel2003).

@+
 

Pierrot93

XLDnaute Barbatruc
Re : collage spéciale avec une macro

Re

comme je te le disais, comprends pas trop chez moi ce code fonctionnait... Où as tu placé le code, dans un module standard ou dans le module d'une feuille ? le mieux, à priori serait dans un module standard.

Le classeur et la feuille où se trouvent les données à copier, doivent être actifs.

Sinon mets en pièce jointe les 2 fichiers très allégés, sans données confidentielles, avec la totalité du code utilisé...

@+
 

alfonso

XLDnaute Junior
Re : collage spéciale avec une macro

je te joint les fichiers depuis mon site perso car la taille dépassait la limite pour le mettre sur le forum

en faite ce que je souhaite obtenir c'est que dans "fichiers1.xls" dans la colonne retard lorsque la cellule est supérieur à 0, alors il me copie la ligne entière et me la colle dans "essai2.xls" et il faudrait qu'il y a une boucle pour qu'il me répet cette opération pour les lignes suivantes la trame est identique sur les 2 fichiers pour simplifiez le copier coller




merci d'avance :cool::cool:
 

Pierrot93

XLDnaute Barbatruc
Re : collage spéciale avec une macro

Bonjour Alfonso

Ton fichier modifié, en fait c'est le classeur "essai2" qui est actif quand tu appeles la macro... donc forcement il ne se passe pas grand chose.

J'ai modifié la macro en renseignant les noms des classeurs et des feuilles.

bonne journée
@+
 

Pièces jointes

  • essai2.zip
    12.4 KB · Affichages: 35
  • essai2.zip
    12.4 KB · Affichages: 34
  • essai2.zip
    12.4 KB · Affichages: 35

alfonso

XLDnaute Junior
Re : collage spéciale avec une macro

salut j'ai une première erreur a la ligne "With Workbooks("fichiers1.xls").Sheets("Stator")" il me dit que l'indice n'appartient pas a la sélection pourtant j'ai bien respecter l'adresse de mon fichier
 

alfonso

XLDnaute Junior
Re : collage spéciale avec une macro

après quelque correction suitte a des petites erreur la macro fonctionne mais losrque'il me copie les dates au lieu de 01/01/08 il me met 39400 je crois que ca vient de la ligne pasteSpecial.paste

voici le code
Sub Macro12()
Workbooks.Open Filename:= _
"\\dom2.ad.sys\dfsbor1root\BOR1_Homedir4\aozel\My Documents\SAVE\Indicateur de suivi des ITP appros_revue.xls"

For ligne = 13 To 20
For colonne = 22 To 24

If Cells(ligne, colonne).Value > 0 Then
Range(Cells(ligne, 4), Cells(ligne, 24)).Copy
With Workbooks("essai2.xls").Sheets("Feuil1").Range("D" & ligne)
.PasteSpecial Paste:=xlValues
End With
End If

Next colonne
Next ligne
End Sub

je vais essayer de corriger ca
merci pierrot pour ton aide c'est cool
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 355
Messages
2 087 550
Membres
103 588
dernier inscrit
Tom59300Tom