begin process at 2012 02 15 18:06:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Divers

 > 

Débutants

 > 

La méthode paste spéciale de la classe range a échouée


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

La méthode paste spéciale de la classe range a échouée

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ée 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...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,694 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales