IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Soucis Code VBA pour copie de données d'un fichier xls vers un autre xls


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 4
    Par défaut Soucis Code VBA pour copie de données d'un fichier xls vers un autre xls
    Bonjour,

    Je cherche à coder en VBA une macro qui me permet de recopier les données d'un fichier vers un autre.
    Il ne s'agit pas de tableau mais seulement de données.

    J'ai trouvé beaucoup d'informations à ce sujet et ai essayé mais VBA me renvoie sans cesses des messages d'erreurs et à chaque fois différents...

    je vous détaille un peu plus l'affaire: Je veux copier les données des cases en jaune du tableau du fichier "Menu.xlsm" vers les tableau du fichier "Reccap Menu.xlsm". Seulement le fichier Menu.xlsm n'est pas réellement un tableau et il existe des cases fusionnées...

    Je joins les fichiers et ci dessous recopie le code que j'ai tenté.

    'Menu.xlsmReccap menu.xlsmMenu.xlsmReccap menu.xlsm

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    Public Menu
    Public BASE_menu
    Public derniere_ligne_tableau
     
    Sub Macro_Copie_Donnees()
     
    Menu = ActiveWorkbook.Name
     
    'Ouverture du formulaire BASE_Menu
    BASE_menu = MsgBox(prompt:="Veuillez ouvrir le fichier excel Reccap menu" _
                , Title:="Ouverture fichier GRF-0041", Buttons:=vbInformation)
    Chemin_BASE_Menu = Application.GetOpenFilename("Tous (*.*), *.*,Tous (*.*), *.*") 'Ouverture du fichier sélectionné (GRF)
    Workbooks.OpenText Filename:= _
            Chemin_BASE_Menu, Origin:= _
            xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
            xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
            Comma:=False, Space:=False, Other:=False
    BASE_menu = Dir(Chemin_BASE_Menu)
    Application.DisplayAlerts = False
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    '-----
     
    Windows(BASE_menu).Activate
     
    Sheets("Feuil1").Select 'Selection de l'onglet contenant le tableau du BASE_Menu
     
    num_ligne = Application.InputBox("A partir de quelle ligne souhaitez-vous coller les informations ? ", "Numéro de ligne")
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Windows(BASE_menu).Activate
    Application.EnableEvents = True
    Sheets("Menu Repas").Select
     
    Application.ScreenUpdating = False
     
    Range("A3").Select
    Selection.Copy
    Windows(BASE_menu).Activate
    Application.EnableEvents = True
    Sheets("Feuil1").Select
    Cells(1, 1).Select
    Selection.Paste
     
    End Sub
    I need help please :calim2:
    Merci pour votre aide

  2. #2
    Membre éprouvé Avatar de Wololol
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 104
    Par défaut
    Bonjour,

    Comme ta selection contient des cellules fusionnées, un simple Paste ne fonctionnera pas.

    Il faut que tu utilises PasteSpecial (et encore je ne suis pas sur que ça fonctionnera tout le temps), et si possible, retirer complétement les fusions.

    De plus, tu peux largement améliorer ton code en retirant tous tes Select

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sheets("Feuil1").Select
    Cells(1, 1).Select
    Selection.Paste
    Devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil1").Cells(1,1).PasteSpecial
    En espérant t'avoir aidé

    Bonne journée

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2018
    Messages : 4
    Par défaut
    Salut,

    Merci pour ta réponse.

    J'ai en effet lu que beaucoup préconise l'absence de 'Select'
    J'ai modifié mon code en conséquence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Public Menu
    Public BASE_menu
    Public derniere_ligne_tableau
    *
    Sub Macro_Copie_Donnees()
    *
    Menu = ActiveWorkbook.Name
    *
    'Ouverture du formulaire BASE_Menu
    BASE_menu = MsgBox(prompt:="Veuillez ouvrir le fichier excel Reccap menu" _
                , Title:="Ouverture fichier GRF-0041", Buttons:=vbInformation)
    Chemin_BASE_Menu = Application.GetOpenFilename("Tous (*.*), *.*,Tous (*.*), *.*") 'Ouverture du fichier sélectionné (GRF)
    Workbooks.OpenText Filename:= _
            Chemin_BASE_Menu, Origin:= _
            xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
            xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
            Comma:=False, Space:=False, Other:=False
    BASE_menu = Dir(Chemin_BASE_Menu)
    Application.DisplayAlerts = False
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    '-----
    *
    Windows(BASE_menu).Activate
    *
    Sheets("Feuil1").Select 'Selection de l'onglet contenant le tableau du BASE_Menu
    *
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    Windows(BASE_menu).Activate
    Application.EnableEvents = True
    Sheets("Menu Repas").Select
    *
    Application.ScreenUpdating = False
    *
    Range("A3").Copy
    Windows(BASE_menu).Activate
    Application.EnableEvents = True
    Sheets("Feuil1").Cells(1,1).PasteSpecial
    *
    End Sub
    Néanmoins, concernant le coeur de mon problème, je ne peux pas 'défusionner' les cellules avant de les copier car c'est ainsi que sont les fichiers source, et c'est là que réside justement mon problème

    J'ai tenté plusieurs types de PasteSpécial mais sans succès...


    Si d'autres personnes ont une idée pour copier des cellules fusionnées sans que l'utilisateur ait à tout défusionner ce serait top
    Thx

    Bonne journée

Discussions similaires

  1. Réponses: 5
    Dernier message: 16/10/2017, 14h57
  2. Ligne de Code VBA pour actualiser des données sous PPT
    Par harald78 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/10/2016, 09h27
  3. [XL-2013] Erreur code vba pour "programme extraction données web"
    Par tatamarc dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/08/2013, 12h07
  4. [XL-2003] Bouton pour transférer des données d'un fichier Excel vers un autre
    Par Alfred23 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 07/09/2011, 16h46
  5. Code VBA pour importer des données vers Excel
    Par thanmirt dans le forum SDK
    Réponses: 1
    Dernier message: 09/04/2011, 17h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo