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 :

copier plage de donnees d'un classeur vers un autre en utilisant inputbox pour le choix du classeur de copie


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    debutant
    Inscrit en
    Février 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : debutant

    Informations forums :
    Inscription : Février 2017
    Messages : 18
    Par défaut copier plage de donnees d'un classeur vers un autre en utilisant inputbox pour le choix du classeur de copie
    bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ChDir _
            "C:\Users\moi\Desktop\
    Range( _
            "B3:B102,C3:E3,F3:G102,H3:I3,K3:R102,T3:AA102,AC3:AV102,AX3:BE102,BG3:BN102,BP3:BW102,BY3:CR102,CT3:DA102,DC3:DJ102,DL3:DS102,DU3:EB102,ED3:EK102,EM3:ET102,EV3:FC102,FE3:FL102,FN3:FU102,FW3:GP102" _
            ).Select
    comment je peu faire pour copier ses plages d'un classeur vers un autre au meme endroit en utilisant msgbox pour indiquer le classeur et feuil de copie et le classeur et la feuil de coller valeur uniquement

    merci

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    ...en utilisant msgbox pour indiquer ...
    Msgbox n'est pas une boîte de dialogue servant à "indiquer", mais une boîte de dialogue servant à informer.
    Je pense que tu confonds une chose et l'autre et que tu pourrais par exemple t'intéresser à deux autres boîtes de dialogue, à savoir :
    - InputBox (fonction)
    - Application.Inputbox (méthode)

    PS : le titre que tu as donné à cette discussion n'en révèle en aucun cas la finalité et pourrait être le même pour tout sujet impliquant du VBA. C'est bien dommage et je le déplore personnellement

  3. #3
    Membre averti
    Homme Profil pro
    debutant
    Inscrit en
    Février 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : debutant

    Informations forums :
    Inscription : Février 2017
    Messages : 18
    Par défaut
    bonjour
    je découvre le langage effectivement je doit confondre entre demander une information et renvoyer une information ,merci pour vos encouragements c motivent ....
    je déplore également mon ignorance aux langage et de faite a l'interprétation a donner a ma demande
    je m'excuse également si j'ai froissé les spécialiste en ce domaine
    merci

  4. #4
    Membre averti
    Homme Profil pro
    debutant
    Inscrit en
    Février 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : debutant

    Informations forums :
    Inscription : Février 2017
    Messages : 18
    Par défaut
    bonsoir
    merci a toussent pour ce merveilleux partage ,toute ces connaissance et capacité mise au service des autres ...
    pour la msgbox je pensé qu' elle servait a renseigner le code pour l'adressage de copie ...
    moi je sui caller dans mon domaine ,c pas pour autant que je balance la caillasse aux autres ... au contraire je m'applique a chaque fois que possible de partager mes connaissances aux autres avec respect ....même aux plus nul ,ce qui est mon cas dans ce domaine ..
    merci a vous

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    1) Je veux penser que tu t'es empressé d'ouvrir ton aide VBA aux deux rubriques (InputBox et Application.InputBox) qui t'ont été indiquées, que tu les as lues avec attention et que tu as tenté de les utiliser. Que n'as-tu pas compris de ce qui y est exposé ?
    2) on se réfère par exemple ainsi à la cellule A1 de la feuille Feuil1 d'un classeur Classeur1 ouvert :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    workbooks("classeur1").worksheets("Feuil1").Range("A1")
    3) l'objet Range (ce qu'est une cellule ou une plage de cellule) est accessible en lecture et écriture
    4) on ouvre ainsi un classeur Classeur1.xlsm présent dans le dossier "D:\docs\" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Open "D:\docs\Classeur1.xlsm"
    5) une plage discontinue est composée de plusieurs objet Areas, qui sont, chacun, un objet Range
    on parcourt ainsi les différents Areas d'une plage P discontinue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     For Each A in P.Areas
           ... '(instruction que l'on veut appliquer à l'objet A)
       Next
    6) la méthode Range.Copy permet de copier un objet Range déterminé d'une source vers une destination précisée par son adresse (telle que dit en 2))
    7) On peut également donner aux cellules d'une plage P1 les valeurs d'une plage P0 (les deux plages ayant été déterminées comme dit en 2)) en utilisant une simple égalité
    ou P1 et P0 sont à remplacer par des expressions Range telles que dit en 2)
    Et ceci fonctionne y compris avec des plages discontinues

    Il ne te manque rien pour t'y mettre et résoudre ta difficulté. En te rappelant que tu as demandé :
    comment je peu faire pour copier ses plages d'un classeur vers un autre au meme endroit
    Tu as maintenant plusieurs réponses au "comment".


    Puis-je ajouter que ce site dispose d'une foire aux questions/réponses (FAQ) ?
    Sa consultation est loin d'être inutile. Tu trouveras sans doute avantage à l'ouvrir de temps à autre. Je t'y propose déjà la lecture, entre autres, de cette partie : https://vb.developpez.com/faqvba/?page=3.2#MultiBook

    PS : j'aimerais que tu fasses par ailleurs l'effort de proposer un titre différent de celui que tu as donné à cette discussion.
    EDIT : je vois que le titre (anciennement "aide pour écrire une macro" est maintenant devenu "Paramètres de copie d'une plage par MsgBox "
    C'est déjà moins mal (pas vraiment mieux). Ne serait-ce pas, par exemple : "copier plage entre feuilles/classeurs choisis par l'utilisateur" ?

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Ceci ayant été dit, moi0404
    Nous sommes un dimanche (****) et je veux bien t'accompagner (mais pas n'importe comment) dans ta démarche.
    Il va cependant falloir commencer par la définir très clairement, cette démarche, qui comprend des étapes très distinctes et qui sont très différentes, comme tu vas le voir, selon le contexte.

    On commence :
    Ton premier message laisse entendre que l'utilisateur peut choisir une plage, une feuille source, une feuille destination, un classeur source et un classeur destination.
    - question qui se posent alors :
    1) les classeurs source et (surtout) destination sont-ils déjà ouverts ou doivent-ils l'être par l'utilisateur ?
    2) si le classeur de destination n'est pas ouvert :
    -- l'utilisateur doit-il pouvoir choisir et ouvrir n'importe quel classeur (dangereux, alors ...) ?
    -- l'utilisateur ne doit-il pouvoir choisir et ouvrir un classeur de destination que si présent dans un dossier déterminé (moins dangereux qu'en 1) mais encore risqué tout de même) ?
    -- l'utilisateur ne doit-il pouvoir choisir et ouvrir un classeur de destination qu'après certains garde-fou (et lesquels ?) ?
    3) les feuilles du classeur sources et du classeur destination ont-elles les mêmes noms et structures ?

    - le choix de telle feuille source et de telle autre feuille destination est-il sans aucun danger ? Un garde-fou est-il là également à prévoir ? Et si oui : lequel ?


    Et ce ne sera là que la toute première étape (qui relève avant tout de la conception et de la précision, avant même de parler de développement). La plus complexe, en fait. Le reste le sera beaucoup moins

    EDIT : **** : interpréter comme : je veux bien sacrifier quelques heures de mon dimanche. Il te faudra montrer ton propre intérêt et en faire alors autant.
    Demain, nous ne serons plus un dimanche

Discussions similaires

  1. Ecrire une macro IMACRO
    Par triaguae dans le forum Firefox
    Réponses: 3
    Dernier message: 09/12/2008, 18h43
  2. recherche code macro recherche excel.
    Par baldron dans le forum VB.NET
    Réponses: 2
    Dernier message: 04/04/2008, 14h52
  3. Ecrire par macro du code dans un module
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 24/09/2007, 01h50
  4. [VBA-E] m'aider a ecrire une macro Excel?
    Par PASCAL33 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/05/2006, 08h59
  5. Réponses: 17
    Dernier message: 08/01/2006, 19h05

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