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 :

Synthése de plusieurs onglets « Devis »


Sujet :

Macros et VBA Excel

  1. #21
    Membre éclairé Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Points : 758
    Points
    758
    Par défaut
    Citation Envoyé par nduverger Voir le message
    C'est un forum d'entraide, non? Personne ne doit se sentir obligé
    Je t'arrête, si je m'étais sentis obligé de t'aider, je ne l'aurais pas fait. C'est juste que je trouve que tes propos sont légèrement déplacé, un peu comme si tu demandais qu'on vienne écrire la macro sur ton pc.

    Un tutoriel expliquant la base du fonctionnement des macro est extrêmement simple à trouver, et aurais répondu à toute tes questions. Avec un peu d'astuce, Tu n'aurais même pas eu besoin de poster sur ce forum, car Menhir t'a fourni des fonctions tout à fait simple, qui elle même se trouve très facilement sur internet.

    Enfin, je trouve que la dernière phrase, disant que tu n'as pas l'envie/le temps de t'impliquer dans ce que tu fais, est un peu déplacée. Le forum d'entraide, comme tu le définis, est un forum ou l'on vient aider une personne, et j'ai l'impression (attention, ce n'est que mon ressenti), que tu viens ici comme pour demander aux gens de te livrer un code sur un plateau d'argent, sans chercher à le comprendre (du moins, tu ne veux pas lire de tutoriels). Ce n'est plus un forum d'entraide à ce moment là.

    J'espère tout de même que tu auras réussi à faire ce que tu veux faire, et je te souhaite bien du courage pour tes programmes futurs.


    EDIT : c'est malin de modifier son message pendant que j'écris le mien
    Sans message d'erreur ni quoi que ce soit qui nous permettent de t'aider, on est bien dans l'impasse.
    Citation Envoyé par Oscar Wilde
    Je déteste les discussions: elles vous font parfois changer d'avis.

  2. #22
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par nduverger Voir le message
    Cela ne fonctionne pas.
    Tu es toujours aussi descriptive dans tes explications...
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #23
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, histoire de rajouter une couche : voir ici mais aussi ( fichier à télécharger ) et nécessitant une adaptation à ton contexte.

  4. #24
    Nouveau Candidat au Club
    Femme Profil pro
    Responsable des études
    Inscrit en
    Septembre 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Septembre 2014
    Messages : 21
    Points : 0
    Points
    0
    Par défaut
    Voici une macro utile pour copier les plages de cellules vers un onglet recap:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub recap()
     ActiveSheet.Range("A1:J25").Copy Destination:=Sheets("RECAP").Range("A" & Sheets("RECAP").Range("H" & Rows.Count).End(xlUp).Row)
    End Sub
    Par contre, comment faire pour que seules les valeurs soient copiées, et non les formules?

  5. #25
    Membre éclairé Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Points : 758
    Points
    758
    Par défaut
    Bonjour,

    Tu peux essayer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub recap()
    ActiveSheet.Range("A1:J25").Copy
    With Sheets("RECAP")
         .Range("A1").PasteSpecial Paste:=xlPasteValues
    End with
    End Sub
    En modifiant bien évidemment la Range ou tu veux copier les données.
    Citation Envoyé par Oscar Wilde
    Je déteste les discussions: elles vous font parfois changer d'avis.

  6. #26
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Bonjour,

    ou ne pas utiliser Copy mais directement la propriété Value de l'objet Range

    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  7. #27
    Nouveau Candidat au Club
    Femme Profil pro
    Responsable des études
    Inscrit en
    Septembre 2014
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Septembre 2014
    Messages : 21
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par Nico Chg Voir le message
    Bonjour,

    Tu peux essayer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub recap()
    ActiveSheet.Range("A1:J25").Copy
    With Sheets("RECAP")
         .Range("A1").PasteSpecial Paste:=xlPasteValues
    End with
    End Sub
    En modifiant bien évidemment la Range ou tu veux copier les données.
    Merci. Par contre, cette formule ne permet de copier que les valeurs d'un seul onglet à la fois, sur un onglet Recap, et sans mise en forme

    Tandis que cette macro permet de copier les contenus de plusieurs onglets, à la suite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub recap()
    ActiveSheet.Range("A1:J25").Copy Destination:=Sheets("RECAP").Range("A" & Sheets("RECAP").Range("H" & Rows.Count).End(xlUp).Row)
    End Sub
    ==> Comment faire pour "retoucher" cette macro, pour qu'elle copie les valeurs au lieu des formules?

  8. #28
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut




    Non la macro source ne copie qu'un seul onglet !

    Merci d'utiliser l'icône pour baliser le code conformément aux règles du forum !

    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  9. #29
    Membre éclairé Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Points : 758
    Points
    758
    Par défaut
    Bonjour,

    Tu peux dans un premier temps regarder le post de Marc-L, qui peut t'aiguiller sur ce que tu veux faire.
    Sinon, essaie

    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
    Sub recap()
    Dim Ws as worksheets
     
    For Each Ws in ThisWorkbook
         If Ws.Name <> "RECAP" Then
              Ws.Range("A1:J25").Copy
              With Sheets("RECAP")
                  With .Range("A1")
                       .PasteSpecial Paste:=xlPasteValues
                       .PasteSpecial Paste:=xlPasteFormats
                       .Application.CutCopyMode = False
                  End with
              End with
         End if
    Next Ws
    End Sub
    Et je te conseil un code qui va vider en plus de ça le presse-papier, parce qu'au bout de quelques itérations, tu vas certainement avoir des erreurs de mémoires.
    Citation Envoyé par Oscar Wilde
    Je déteste les discussions: elles vous font parfois changer d'avis.

  10. #30
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Menhir a peut-être été un peu vite en besogne car tel quel effectivement cela ne marche pas chez moi non plus ...

    donc une remarque tout d'abord j'evite de mettre le même nom pour une macro et pour une variable trop de risque
    sinon çà cela fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Recapitul()
       Dim Recap As Worksheet
       Dim i As Integer
     
       Set Recap = Worksheets.Add(, Worksheets(Worksheets.Count))
     
       For i = 1 To Worksheets.Count - 1
          Worksheets(i).UsedRange.Copy (Recap.Cells(Recap.UsedRange.Rows.Count + Recap.UsedRange.Row))
       Next i   
    End Sub
    Je ne maitrise pas trop pourquoi les objets s'utilisent tantot au singulier tantot au pluriel

    Par exemple Cell(s)
    - avec un For Each on aura : For Each Cell in Cells
    - affection d'une valeur dans une cellule : Cells(ligne,colonne).value ...

    A+
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  11. #31
    Membre éclairé Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Points : 758
    Points
    758
    Par défaut
    Bonjour Igloobel,

    Les objets avec un S comme "Worksheets" représente une collection d'objet "Worksheet"
    Donc c'est normal que pour :
    Tu parcours la collection Cells, donc chacun des objet Cell.

    Quand tu fais
    Tu choisis un objet représenté par un indice dans la collection. En l’occurrence, plusieurs indices. Un peu comme lorsque tu fait référence à un objet dans un scripting.dictionnary. Tu va faire Dico(Clef) pour avoir l'item correspondant à la clef.

    je ne sais pas si j'ai été clair, mais comme dirait mon collègue :
    Citation Envoyé par Mon collègue
    une couille / une paire (collection) de couilles
    Citation Envoyé par Oscar Wilde
    Je déteste les discussions: elles vous font parfois changer d'avis.

  12. #32
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Nico Chg Voir le message
    ...Quand tu fais
    Tu choisis un objet représenté par un indice dans la collection.
    Du coup je comprend mieux le pourquoi du Comment du Parce que ....

    Du coup je vais mieu comprendre ces fabuleuses Collections ... Sans entrer dans le détail de la coleection décrite par ton collègue

    A+
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

Discussions similaires

  1. [XL-2010] Synthèse de plusieurs onglets de données
    Par LG-69 dans le forum Excel
    Réponses: 2
    Dernier message: 10/10/2014, 13h52
  2. Réponses: 3
    Dernier message: 09/04/2012, 15h03
  3. Export requete sur excel sur plusieur onglets
    Par Renardo dans le forum Access
    Réponses: 10
    Dernier message: 26/01/2007, 17h13
  4. Template d'application comportant plusieurs onglets
    Par g0ldenrno dans le forum Interfaces Graphiques en Java
    Réponses: 8
    Dernier message: 21/06/2006, 18h00
  5. [VBA-E] Impression page paire sur plusieurs onglets
    Par liop49 dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 17/02/2005, 15h19

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