Message d'erreur

Bonjour,

Je viens vers vous car j'ai écrie un code qui est le suivant:

Sub tableau_depose_info()
 ' Désactivation du rafraîchissement de l'écran durant l'exécution du code
    ' (Cela évite de voir les fichiers s'ouvrir et se fermer à très grande vitesse :
    ' sensation de scintillement de l'écran...)
    Application.ScreenUpdating = False
    ' Désactivation également des messages d'alerte afin que le code ne risque pas d'être interrompu
    Application.DisplayAlerts = False

    ' Déclaration des variables et enregistrement du nom du fichier source
    ' (fichier actif, à partir duquel on exécute le code)
 Dim NomSource, NomFichier, NomChemin, NomFeuille As String
    NomSource = ActiveWorkbook.Name

    ' Création d'une boucle, l'opération étant répétée autant de fois qu'il y a de fichiers à renseigner
    ' (cf. onglet "Fichiers", colonne B)
    ' La fonction End(xlUp).Row retourne le numéro de ligne de la première cellule non vide rencontrée
    ' en partant de la fin du fichier (ligne 1 048 576 sous Excel 2007-2010)
    For i = 2 To Sheets("Fichiers").Range("B1048576").End(xlUp).Row

        ' Sélection de la zone à copier (le tableau)
        Range("B5:W616").Select
        ' Copie
        Selection.Copy

        ' Déclaration du nom du fichier dans lequel il va falloir coller le tableau précédemment copié
        ' ainsi que du chemin d'accès et du nom de l'onglet de destination
        ' Ces noms sont renseignés dans l'onglet "Fichiers" du fichier source, colonne D
        ' La ligne lue est la ligne i (cf. Création boucle)
        NomFichier = Sheets("Fichiers").Range("B" & i).Value
        NomChemin = Sheets("Fichiers").Range("C" & i).Value
        NomFeuille = Sheets("Fichiers").Range("D" & i).Value
        ' Ouverture du classeur de destination
        Workbooks.Open (NomChemin & "\" & NomFichier)

        ' Activation de l'onglet de destination
        ' (au cas où le fichier aurait plusieurs onglets et s'ouvrirait sur un autre que celui désiré)
        Sheets(NomFeuille).Activate
        ' Sélection de la cellule supérieur gauche de la zone sur laquelle vont être collées les données
        Range("B14").Select
        ' Collage spécial : valeurs
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        ' Collage spécial : format
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
        ' Sélection d'une cellule quelconque pour ne pas rester avec l'ensemble du tableau sélectionné
        Range("A1").Select
        ' Enregistrement du fichier
        ActiveWorkbook.Save
        ' Fermeture du fichier
        ActiveWorkbook.Close

        ' Retour (activation) sur le fichier source
        Workbooks(NomSource).Activate
        ' Activation de l'onglet comportant les données à copier
        ' (normalement ce n'est pas nécessaire, simple précaution)
        Sheets("depose_infos").Activate

    ' Fin de la boucle, passe au fichier suivant ou à la suite du code (selon la valeur de i)
    Next

    ' Sélection d'une cellule quelconque pour ne pas rester avec l'ensemble du tableau sélectionné
    Range("A1").Select
    ' Activation du rafraîchissement de l'écran
    Application.ScreenUpdating = True
    ' Activation des messages d'alerte
    Application.DisplayAlerts = True
    ' Message indiquant la fin du traitement
    MsgBox "Fichiers mis à jour !"

End Sub

Il fonctionne parfaitement, le problème c'est que je colle mon tableau dans 25 fichiers et qu'a chaque ouverture de ces fichiers un message s'ouvre et me demande de mettre a jours les liaisons.

J'aimerais donc savoir si c'est possible que mon tableau ce copie sans que ce message ne s'affiche ?

Edit Amadéus: Merci d'utiliser les balises Code.

Bonjour,

La plage Range("B5:W616") vient de la feuille "depose infos" ?

Sinon change ceci :

Dim NomSource As String, NomFichier As String, NomChemin As String, NomFeuille As String

et aussi

' Activation de l'onglet de destination
' (au cas où le fichier aurait plusieurs onglets et s'ouvrirait sur un autre que celui désiré)
Sheets(NomFeuille).Activate
' Sélection de la cellule supérieur gauche de la zone sur laquelle vont être collées les données
Range("B14").PasteSpecial Paste:=xlValues
' Collage spécial : format
Range("B14").PasteSpecial Paste:=xlPasteFormats
' Sélection d'une cellule quelconque pour ne pas rester avec l'ensemble du tableau sélectionné
'Range("A1").Select
' Enregistrement du fichier
ActiveWorkbook.Save
' Fermeture du fichier
ActiveWorkbook.Close

A toi de voir mais je vois que l'on peut encore modifier deux ou trois lignes mais cela devrait déjà fonctionner comme ceci

Si ok, lors de ta réponse clique sur le V vert à coté du bouton EDITER pour clôturer le fil.

Crdlt

Oui, la plage Range("B5:W616") vient de la feuille "depose infos" . C'est le tableau que je veux coller dans mes différents fichiers (25 en tout ).

Heu je suis désolé mais j'ai changer ce que tu ma dis et sa ne fonctionne pas j'ai toujours le message qui sa fiche

Bonjour,

Tu peux essayer :

Workbooks.Open (NomChemin & "\" & NomFichier, UpdateLinks:=0)

J'ai modifier ce que tu ma dis et sa me afficher ce message " erreur de compilation : erreur de syntaxe"

Re,

à chaque ouverture de ces 25 fichiers ...

Existerait-il parmi les 25 fichiers ... certains fichiers qui n'auraient pas de connections ...???

OUI , a chaque ouverture.

ET c'est 25 fichiers tous configuré de la même façon .

Re,

Si je comprends bien ...

NomFichier = Sheets("Fichiers").Range("B" & i).Value

Tous les noms des 25 fichiers se trouvent dans la Colonne B de la Feuille Fichiers ...

Les noms sont-ils complets ... avec leur extension : .xlsx ou .xlsm ?

OUI, OUI et OUI . Tu trouveras en PJ mon fichier comme sa ce sera plus facile a comprendre .

Re,

Merci pour le fichier ... ma boule de cristal avait commencé ...à devenir brouillardeuse ...

A tester ...

Application.Workbooks.Open Filename:=NomChemin & "\" & NomFichier, UpdateLinks:=False

Tu es un vrai magicien merci beaucoup ça fonctionne du tonner

barbosa a écrit :

Tu es un vrai magicien merci beaucoup ça fonctionne du tonner

Content que tu aies trouvé la solution ...

Merci pour tes remerciements ...

re

Déso Barbosa, mais absent hier je n'ai pas pu revenir sur ta demande plus tot

Crdlt

Rechercher des sujets similaires à "message erreur"