Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : La méthode paste spéciale de la classe range a échouée [ Divers / Débutants ] (laurent56380)

vendredi 25 janvier 2008 à 06:29:49 | La méthode paste spéciale de la classe range a échouée

laurent56380

Bonjour,
Ne connaissant pas grand chose en VBA, j'ai essayé de faire une macro comme j'ai pu.
Cette macro recopie une sélection de lignes  dans plusieurs classeurs.
Le problème c'est qu'elle fonctionne pour 1 fichier et qu'elle ouvre bien le 2ème mais ensuite je reçois le message "La méthode paste spéciale de la classe range a échouée".
Que dois-je modifier??
Voici la macro au complet.

Sub Copie_plage()
Dim Fich As String, Ligne As Long
Const Chemin = "D:\ABC\Laurent\Essai macro\"

Fich = Dir(Chemin & "\*.xl*")
ThisWorkbook.Sheets("98%").Rows("3770:4000").Select
Selection.Copy
Do While Fich <> ""
Workbooks.Open Filename:=Chemin & Fich
Worksheets("98%").Select
Rows("3770").Select

Selection.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
   
Workbooks(Fich).Save
Workbooks(Fich).Close
Fich = Dir
Loop
End Sub


vendredi 25 janvier 2008 à 07:08:22 | Re : La méthode paste spéciale de la classe range a échouée

wape

Réponse acceptée !

Bonjour,

Il faut mettre la copie à l'intérieur de la boucle Do While ... Loop :

Sub Copie_plage()
Dim Fich As String, Ligne As Long
Const Chemin = "D:\ABC\Laurent\Essai macro\"

Fich = Dir(Chemin & "\*.xl*")
Do While Fich <> ""
ThisWorkbook.Sheets("98%").Rows("3770:4000").Select
Selection.Copy
Workbooks.Open Filename:=Chemin & Fich
Worksheets("98%").Select
Rows("3770").Select

Selection.PasteSpecial Paste:=xlPasteFormulasAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
   
Workbooks(Fich).Save
Workbooks(Fich).Close
Fich = Dir
Loop
End Sub

wape


vendredi 25 janvier 2008 à 14:01:38 | Re : La méthode paste spéciale de la classe range a échouée

laurent56380

Un Grand Merci.
J'ai essayé, çà marche Nickel.
C'est un plaisir.
Et que de temps gagné.
a+
Laurent

samedi 10 janvier 2009 à 15:19:26 | Re : La méthode paste spéciale de la classe range a échouée

COLLETF



Tchoi
Bonjour .
Nouveau sur la liste 
J'ai un problème du même genre que je n'arrive pas à résoudre .
la méthode paste spécial a échoué , bla bla bla ..
les fichiers texte contiennent des nombre décimaux et il ne sont correctement collés avec la virgule que si j'utilise la méthode pas spécial conservation du format et des données .
d'ailleurs je ne comprend pas très bien comment ça marche car manuellement je n'ai pas toujours les mêmes options disponibles dans la boite de dialogues . 
Voici le code

Sub Macro1()
'
' Macro1 Macro

'08-01-2009
Dim fin As Integer
Dim fichier As String
Dim nomfeuil As String
nom_dep = ThisWorkbook.Name

fin = Sheets("fichiers").UsedRange.Rows.Count
For i = 1 To fin
 Sheets("fichiers").Select
fichier = Range("A" & i).Value
MsgBox fichier


dato = Format(Date - 2, "dd-mm-yyyy")
fichier = ActiveWorkbook.Path & "\integre_mails\" & fichier & " " & dato & ".txt"
MsgBox fichier

Workbooks.OpenText Filename:= _
     fichier _
        , Origin:=xlMSDOS, StartRow:=11, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 4), _
        Array(2, 1)), TrailingMinusNumbers:=True
        nomfeuil = ActiveSheet.Name
        MsgBox nomfeuil
        longueur = Sheets(nomfeuil).UsedRange.Rows.Count
    Rows("1:" & longueur).Select
   
   
    Selection.Copy
    ActiveWindow.Close
    Workbooks(nom_dep).Activate
    Sheets("fichiers").Select
    feuille_dest = Range("B" & i)
    Sheets(feuille_dest).Select
    Range("A1").Select
  
  

   Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
Next i

End Sub



samedi 10 janvier 2009 à 15:41:29 | Re : La méthode paste spéciale de la classe range a échouée

COLLETF



Tchoi
autant pour moi , j'ai trouvé la solution tout seul
j'ai fermé le classeur d'origine des données avant le collage:

    Selection.Copy
    ActiveWindow.Close
si on le ferme après ça marche .






Cette discussion est classé dans : macro, false, méthode, paste, fich


Répondre à ce message

Sujets en rapport avec ce message

Macro excel qui plante "Méthode Range" [ par Pangs ] J'ai un probleme avec une macro ecxel .Cette macro execute un graphique 3d de surface, et sa premiere ligne de code est : Range("B2:AG23").Select . Macro sur des Workbook multples [ par Proximo ] Bonjour,Voila je fait appelle a une macro excel afin de gere plusieurs workbook simultanement.Il s'agit pour moi d'ouvrir une quinzaines de fichiers f comment lier un signet (ou un champs) avec une macro [ par cartabou81 ] Bonjour,Dans Word, je récupère dans un signet une date "date du jour". J'ai crée une macro mais je voudrais qu'elle enregistre mon document avec un no MACRO INSERER PBL Sélection cellule ! [ par Vladsmice ] J'ai un problème quand je veux sélectionner ma cellule (I)! Voici le petit prog:Sub Insérer ()I=E6If I 0 ThenI= I+8Range I. Select [Ca ne fonctionne MACRO INSERER PBL Sélection cellule ! [ par Vladsmice ] J'ai un problème quand je veux sélectionner ma cellule (I)! Voici le petit prog:Sub Insérer ()I=E6If I 0 ThenI= I+8Range I. Select [Ca ne fonctionne Paste special with VB6 [ par benjavd ] Bonjour,Je voudrais exécuter un paste special value avec VB6.Du genre: Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ Word et Macro [ par chris87000 ] Bonjour,Je ne connais pas Vba pour Word et je souhaite insérer dans Word de façon automatique du texte avec plus de 255 caractères. (La fonction inser Macro ouverture .csv sous excel [ par yalefe ] Bonjourj'essaie d'ouvrir un .csv par macromais je n'obtiens pas le resultat obtenuen fait ma macro s'obstine à ne pas voir les ;elle me met tous les c Pb avec macro de remplacement dans Excel [ par lucio57 ] Bonjour,Dans un fichier Excel je cherche à faire un ctrl + H afin de remplacer toutes les dates non valides par rienLorsque je le fais manuellement en macro Word ne fonctionne pas ??? [ par moomoonette ] J'ai une macro word toute bête qui ne fonctionne pas à cause de la commande :WordBasic.MailMergePropagateLabelLe message d'erreur est la commande n'es


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 8,876 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.