Copie des données d'une feuille via macro

Résolu
reno421 Messages postés 47 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je sollicite à nouveau votre aide. Je dois réactualiser, régulièrement des données d'un fichier excel. Pour clà, j'ai créé la macro ci-dessous. Le hic c'est qu'il va bien me chercher les bonnes données mais qu'il les copie dans un nouveau classeur au lieu de le copier dans le classeur de départ (classeur_principal, dans le code). De plus, j'aimerais qu'il garde la même mise en page. Qui peut m'apporter la solution ? D'avance merci

Sub Mise_a_jour_PAA_VLT()

'
' Mise à jour PAA_VLT
'


Dim wbMyWb As Workbook
Dim Nom_Classeur As Variant
Dim Classeur_principal As Variant

Dim Faeff As String

Faeff = "PAA-VLT"

Classeur_principal = ActiveWorkbook.Name

If MsgBox("Voulez vous mettre à jour la liste des remarques VLT ? ", vbYesNo) = vbYes Then
            Effacer_données_feuille (Faeff)     ' efface les données de la feuille PAA-VLT
            ' ChDir "C:\xxxx\yyyy\fichier.xls"  pour imposer un répertoire spécifique
            Nom_Classeur = Application.GetOpenFilename("Fichiers Excel (*.xls), *.xls") ' recherche du fichier de données
            If Nom_Classeur <> False Then
                Set wbMyWb = Workbooks.Open(Nom_Classeur)
                wbMyWb.Activate
            End If
            
                wbMyWb.Sheets(Faeff).Copy   'Copie les données de la feuille du classeur choisi
                Workbooks(Classeur_principal).Worksheets("PAA-VLT").Activate
                Cells(1, 1).Select
                ' ThisWorkbook.Sheets(Faeff).Activate  ' Met à jour les données dans le fichier initial
                ' ActiveSheet.Paste
                Selection.PasteSpecial Paste:=xlPasteValues
                
            'fermeture classeur
            wbMyWb.Activate
                      
            wbMyWb.Close False 'fermeture classeur sans sauvegarde (True si sauvegarde)
            
    Else
            
End If
 
        
End Sub

3 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Sub Mise_a_jour_PAA_VLT()
    Dim wbMyWb As Workbook
    Dim Nom_Classeur As Variant
    Dim Classeur_principal As Variant

    Dim Faeff As String

    Application.ScreenUpdating = False

    Faeff = "PAA-VLT"

    Classeur_principal = ActiveWorkbook.Name

    If MsgBox("Voulez vous mettre à jour la liste des remarques VLT ? ", vbYesNo) = vbYes Then
    'Effacer_données_feuille (Faeff) ' efface les données de la feuille PAA-VLT
    ' ChDir "C:\xxxx\yyyy\fichier.xls" pour imposer un répertoire spécifique
    Nom_Classeur = Application.GetOpenFilename("Fichiers Excel (*.xls), *.xls") ' recherche du fichier de données
    If Nom_Classeur <> False Then
    Set wbMyWb = Workbooks.Open(Nom_Classeur)
    Else
    MsgBox " Pas de fichier selectionne!!!!"
    Exit Sub
    End If
    Worksheets(Faeff).Cells.Copy 'Copie les données de la feuille du classeur choisi
    Workbooks(Classeur_principal).Worksheets("PAA-VLT").Activate
    Cells(1, 1).Select
    Application.DisplayAlerts = False
    Selection.PasteSpecial Paste:=xlPasteAll
    Application.DisplayAlerts = True
    'fermeture classeur
    wbMyWb.Close False 'fermeture classeur sans sauvegarde (True si sauvegarde
    End If
    End Sub
    0
    1. reno421 Messages postés 47 Statut Membre
       
      f894009 ,

      Merci pour ta réponse rapide. J'ai essayé, je comprends ton code mais quand je test, au lieu de venir replacer dans les données copiées dans le fichier de départ 'a', il les copie dans un fichier 'c'

      En essayant d'âtre plus clair.
      Je suis dans le fichier 'a'
      J'ouvre via la macro le fichier 'b'
      je copie les données de la feuille 'VAA-VLT'
      je dois revenir dans le fichier 'a' pour les coller
      je ferme le fichier 'b'

      hors, ce qu'il ce passe c'est qu'il ouvre un fichier 'c' fait la copie puis ferme le fichier 'b'.

      Je ne comprends pas pourquoi.

      Merci pour ton aide
      0
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > reno421 Messages postés 47 Statut Membre
         
        Re,

        je comprends ton code
        Ben c'est quand-meme au moins 95% du votre, alors .........

        hors, ce qu'il ce passe c'est qu'il ouvre un fichier 'c' J'ai fait pas mal de tests et je n'ai pas de fichier 'c'!!!!!!!!!!!!!
        Je ne vois pas par quel "miracle" ce fichier peut s'ouvrir ?????

        Faites une recopie d'ecran de facon a voir ce fameux ficher 'c'
        0
    2. reno421 Messages postés 47 Statut Membre
       
      en fait il crée un nouveau fichier qu'il appelle : classeurxx.xls

      ou xx est le numéro du fichier, 1iere exécution de la macro-> 1, 2ième ->2, ...

      je ne comprends pas
      0
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    ou xx est le numéro du fichier, 1iere exécution de la macro-> 1, 2ième ->2, ...
    Y a pas de generation spontanee. Mettez votre fichier a dispo, car dans le code, il n'y pas de creation de classeur ni d'ouverture d'un troisieme
    0