Macro qui marche 1 fois sur 2

Bonjour,

j'ai créé une macro pour récupérer des données dans un autre classeur. Je copie les données de 2 feuilles en même temps dans le classeur A, je passe dans le classeur B et je veux coller ces données dans 2 feuilles du classeur B, en "oubliant" les cellules vides.

Mon problème, c'est qu'elle plante systématiquement 1 fois sur 2, toujours au même endroit :

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=True, Transpose:=False

le message qui m'arrive quand ça plante :

Erreur 1004

La méthode PasteSpecial de la classe range a échoué.

Comment faire pour que ça marche tout le temps ?

Merci pour vos réponses

4classeur1.xlsx (17.99 Ko)

Bonjour,

Fait-nous voir le début du code jusqu'au bug.

ou la macro complète

amicalement

Claude.

Voici le code complet précédent :

(j'ai fait des modifs depuis mon premier post, mais toujours le même bug)

Dim MESSAGE1, MESSAGE2, MESSAGE3, MESSAGE

Dim MSG_CONFIRMATION

Dim NOM_FICHIER_A_OUVRIR

Dim NOM_FICHIER_OUVERT

Dim ERREUR_FICHIER

Dim VILLE, ARMOIRE, TARIF, FACTHABN, FACTHTOT

Dim MSG_FIN_RECUP

Dim NOM_FEUILLE_ACTIVE

Dim NOM_CELLULE_ACTIVE

Dim LOCALISATION, TEA, AIDES, DISTRIBUTION, NORME, COUTARM, RELAIS1, RELAIS2, COUTHA

Dim TYPEHA, COUTVDT, TYPEVDT, SOL1, SOL2, TENSION

NOM_FICHIER_OUVERT = ActiveWorkbook.Name

NOM_FEUILLE_ACTIVE = ActiveSheet.Name 'pouvoir revenir à la feuille active en fin de macro

NOM_CELLULE_ACTIVE = ActiveCell.Address 'pouvoir revenir à la cellule active en fin de macro

'CONFIRMATION LANCEMENT

MESSAGE1 = "La récupération des données d'un fichier archivé remplacera"

MESSAGE2 = "toutes les données du fichier '" & NOM_FICHIER_OUVERT & "'."

MESSAGE3 = "Êtes-vous sûr de vouloir continuer ?"

MESSAGE = MESSAGE1 & Chr$(10) & MESSAGE2 & Chr$(10) & Chr$(10) & MESSAGE3

MSG_CONFIRMATION = MsgBox(MESSAGE, vbYesNo + vbExclamation, "Récupération de données")

If MSG_CONFIRMATION = vbNo Then Exit Sub

'OUVERTURE DU FICHIER

Choix_fichier:

NOM_FICHIER_A_OUVRIR = Application.GetOpenFilename("Classeur Microsoft Excel (*.xls*),*.xls*") 'Filtre(forcément un fichier XLS)

If NOM_FICHIER_A_OUVRIR = False Then Exit Sub

Application.ScreenUpdating = False 'gel de l'écran (on ne voit pas le fichier ni les copier-coller)

Workbooks.Open (NOM_FICHIER_A_OUVRIR)

Application.StatusBar = "Récupération des données en cours, veuillez patienter..."

If Sheets(4).Name = "Cout" Then GoTo Récup

MESSAGE1 = "Le fichier '" & ActiveWorkbook.Name & "' n'est pas un fichier archivé ou a été modifié."

MESSAGE2 = "Sélectionnez un autre fichier."

MESSAGE = MESSAGE1 & Chr$(10) & Chr$(10) & MESSAGE2

ERREUR_FICHIER = MsgBox(MESSAGE, vbCritical + vbOKOnly, "ee")

ActiveWorkbook.Close (False)

GoTo Choix_fichier

Récup:

NOM_FICHIER_A_OUVRIR = ActiveWorkbook.Name 'Suppression chemin d'accès

Sheets("Armoire").Select

TARIF = Range("B1").Value

FACTHABN = Range("B2").Value

FACTEABN = Range("B3").Value

FACTHTOT = Range("B4").Value

FACTHTOT = Range("B5").Value

VILLE = Range("B6").Value

ARMOIRE = Range("B7").Value

LOCALISATION = Range("B8").Value

TEA = Range("B9").Value

AIDES = Range("B10").Value

DISTRIBUTION = Range("B11").Value

NORME = Range("B12").Value

COUTARM = Range("B13").Value

RELAIS1 = Range("B14").Value

RELAIS2 = Range("B15").Value

COUTHA = Range("B16").Value

TYPEHA = Range("B17").Value

COUTVDT = Range("B18").Value

TYPEVDT = Range("B19").Value

SOL1 = Range("B20").Value

SOL2 = Range("B21").Value

'Copier-coller des données

'Workbooks(NOM_FICHIER_A_OUVRIR).Activate

Sheets("BE Initial").Select

Columns("C:C").Select

Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

Columns("E:E").Select

Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

Sheets("BE modifié").Select

Columns("C:C").Select

Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

Columns("E:F").Select

Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

Application.CutCopyMode = False 'Désactivation du mode "copier-coller"

'-------------------------------------------------------------------------------------------

Sheets(Array(2, 3)).Select

Range("A2:B49").Select

Selection.Copy

Workbooks(NOM_FICHIER_OUVERT).Activate

Sheets("BE Initial").Select

Range("C5").PasteSpecial Paste:=xlValues

ET LA, CA QUEUTE SUR LE PASTESPECIAL, TOUJOURS 1 FOIS SUR 2, SANS SE TROMPER...

Rechercher des sujets similaires à "macro qui marche fois"