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 :

ouverture fichier, copier coller, sauvegarde [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Par défaut ouverture fichier, copier coller, sauvegarde
    Bonjour à vous,

    Je reviens un peu à des demandes plus complexes à gérer sur exel que des formules après des années sans programmation VBA ....

    Actuellement, j'ai un fichier A qui s'incrémente automatique à partir d'un autre fichier excel, là pas de souci.

    Je souhaite ajouter à ce fichier A via macro ou bouton et VBA, la possibilité qu'il ouvre un fichier B avec un nom et chemin prédéfini et fasse un copier de la feuille du fichier A puis collage spécial par Valeurs et formats des nombres dans mon ficher B.

    Une fois ce collage spécial, je souhaiterais que le fichier s'enregistre automatique sous un nom défini + une valeur d'une cellule du fichier B afin d'obtenir un fichier C.

    Je ne sais pas si je dois passer via macro ou VBA, de plus mes dernières manipulation en VBA remonte à du excel 2003 et non 2007 ....

    Merci par avance de votre retour, cordialement.

  2. #2
    Membre confirmé Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Par défaut
    Bonsoir,

    Pour le moment, d'après mes recherches j'ai pu commencer ce code pour une macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub macro()
    Workbooks.Open ("C:\Users\chemin_fichier_B.xlsx")
    Workbooks("C:\Users\chemin_fichier_A.xlsx").Sheets("matrice").Range("A1:F52").Copy
    Workbooks("C:\Users\chemin_fichier_B.xlsx").Sheets("fiche").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    End Sub
    Lorsque j'exécute la macro, j'ai l'erreur d'exécution 9 l'indice n'appartient pas à la sélection, mon fichier B c'est bien ouvert.

    Par contre je ne trouve pas d'où vient l'erreur et sur mon fichier B rien n'est collé.

    Si vous avez des propositions cordialement.

  3. #3
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    Une proposition
    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
    Private Sub CommandButton1_Click()
    Dim FichB As String, FichC As String
    Dim Wbk As Workbook
     
    Application.ScreenUpdating = False
    FichB = "C:\Users\chemin_fichier_B.xlsx"
    Set Wbk = Workbooks.Open(FichB)
    ThisWorkbook.Sheets("matrice").Range("A1:F52").Copy
    'On colle les valeurs, format et largeurs des colonnes
    With Wbk.Worksheets("Fiche").Range("A1:F52")
        .PasteSpecial Paste:=xlPasteValues
        .PasteSpecial Paste:=xlPasteColumnWidths
        .PasteSpecial Paste:=xlPasteFormats
    End With
    Application.CutCopyMode = False
    'nom du fichierC à génerer TotoXXX.xlsx (avec XXX valeur de A1 de feuille Fiche du classeur B
    FichC = Wbk.Path & "\Toto" & Wbk.Sheets("Fiche").Range("A1").Value
    Application.DisplayAlerts = False
    Wbk.SaveAs FichC, xlOpenXMLWorkbook
    Application.DisplayAlerts = True
    Wbk.Close
    Set Wbk = Nothing
    End Sub

  4. #4
    Membre confirmé Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Par défaut
    Bonsoir, merci de la réponse.

    Cela fonctionne à merveille lorsque je fais exécuter via l'onglet développeur et la source.

    Par contre bien que j'ai mis le bouton sur en insérant bien le bouton de commande sur mon fichier A, je ne peux cliquer dessus, si je clique dessus me propose de modifier le texte, déplacer .... Mais cela n'éxécute pas le code.

    De mémoire sur excel 2003 cela était simple à faire mais là je ne vois pas comment l'activer le bouton pourtant la propriété Enabled est bien sur True ...

    Si vous avez une dernière suggestion et tout cela parfait. En tout cas déjà merci beaucoup pour la proposition qui fonctionne à merveille

  5. #5
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Insère un bouton de commande ActiveX (Onglet Développeur> Insérer)
    Clique y (boutton droit) > Visualiser Code
    Insère le code

  6. #6
    Membre confirmé Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Par défaut
    C'est ce que j'ai fais, enfin j'avais double clic pour accèder à la saisie du code.

    Mais une fois le code saisi lorsque je reviens sur excel via la bascule avec le VB, il ne se passe rien au clic sur le bouton à part la sélection de celui ci avec la possibilité de déplacer le bouton ....

    Bizarre je trouve pas ce qui peut bloquer, bien enregistré pourtant ma matrice en format .xlsm


    Edit à 20h18 : Autant pour moi, je devais juste fermer mon fichier et le réouvrir afin d'activer l'active x via le message de sécurité à l'ouverture du fichier, là tout est OK

    merci donc beaucoup pour l'aide, cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Copier/coller un fichier si ping ok
    Par Chrissrare dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 26/06/2006, 16h14
  2. [POI]copier/coller fichier Excel
    Par yas2006 dans le forum Documents
    Réponses: 3
    Dernier message: 23/03/2006, 20h16
  3. Interdire de déplacier (copier-coller) un fichier ???
    Par beegees dans le forum Autres Logiciels
    Réponses: 6
    Dernier message: 15/03/2006, 21h43
  4. Probleme avec les fichier faire un copier coller
    Par mcdonald dans le forum Général Python
    Réponses: 4
    Dernier message: 29/01/2006, 13h38
  5. Copier coller Fichier windows
    Par KPitN dans le forum Windows
    Réponses: 8
    Dernier message: 20/04/2004, 17h32

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