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 :

Addition sur un nombre de feuilles aléatoire


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par défaut Addition sur un nombre de feuilles aléatoire
    Bonjour,
    Je dois reccueuillir auprès de différentes entités, des totaux d'ojets commandés.
    Chaque entité reçoit un fichier "banalisé" qui comprend une feuille dite "Accueil" (qui explique le mode opératoire) une feuille "Récap" et une feuille "type" (banalisée).
    J'ai déjà créé les macros nécessaires pour créer autant de copies que nécessaires de cette feuille banalisée et renommer les copies au fur et à mesure de leur création avec les noms des utilisateurs.
    Au final, j'obtiens donc un fichier avec:
    - Feuille "Accueil"
    - Feuille "Récap"
    - Feuille "banalisée"
    - x feuilles copies de la feuille banalisée ayant chacune un nom d'onglet différent (nom d'utilisateur).

    Dans la feuille "Récap", je veux totaliser les contenus des cellules de toutes les autres feuilles (sauf "Accueil" et "banalisée" bien sûr).
    Comme le nombre de copies est inconnu au départ, je n'ai d'autre reccours que de compter les feuilles et faire une addition par une routine. j'ai donc écrit cette macro:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub Total()
      Dim i As Integer 'incrément feuilles
      Dim w As Integer 'variable en fonction du nombre de feuille du classeur
      w = Worksheets.Count 'attribution du nombre de feuille à la variable w
        For i = 4 To w 'je commence avec la feuille 4 pour ne pas comptabiliser les trois feuilles de base
          Sheets("Recap").Cells(9, 4).Value = Sheets("Recap").Cells(9, 4).Value + Sheets(i).Cells(9, 4).Value
        Next
    '... toutes les autres cellules à totaliser fonctionneront sur ce même principe
    End sub
    La question est: est ce que ça va marcher ? (vu le nombre l'aléas possibles, je préfère m'assurer que je suis sur la bonne piste dès le départ)
    Merci

  2. #2
    Expert éminent
    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
    Par défaut

    Bonjour,

    oui cela devrait fonctionner mais pas vraiment nécessaire
    car le calcul peut se faire directement dans une cellule via une référence 3D (voir l'aide d'Excel, pas celle du VBA) …

  3. #3
    Membre actif
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par défaut
    Oui, en effet, mais pour ça, il faut que les noms des feuilles qui bordent la "plage" soient connus
    Si je fais =SOMME(feuil4:Worksheets.Count!B4) ça ne marchera pas.
    Il faudrait déjà que je crée deux feuilles "bidon" pour délimiter la zone, mais elles s'ajouteraient au classeur.
    Ou alors il faut que je crée ces deux feuilles supplémentaires au moment de la "personnalisation" du fichier.
    Pour ça ma macro actuelle qui place les feuilles copiées-renommées en bout à droite devrait ajouter une feuille et intercaler les créations entre une feuille A (vide) et cette feuille B (vide aussi).
    De cette façon, j'aurai dans l'ordre de gauche à droite:

    - Feuille "Accueil"
    - Feuille "Récap"
    - Feuille "banalisée"
    - Feuille A
    - Feuille x1
    - Feuille x2
    - Feuille x3
    - Feuille x4
    - Feuille x5
    - Feuille x6
    - Feuille x7
    - Feuille x8
    - Feuille ...
    - Feuille B
    et la formule serait: =SOMME(Feuille A:Feuille B!B4)
    C'est comme ça que tu voyais les choses ?

  4. #4
    Membre actif
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par défaut
    J'ai testé la solution ci-dessus.

    dans la feuille Recap, chaque celle =SOMME(FeuilA:FeuilB!B5) (exemple)

    Ca marche, mais pour ça il y a une condition:

    - il faut que les feuilles A et B soient visibles (et ça ne m'arrange pas trop)

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/06/2014, 14h16
  2. [XL-2010] Compter cellules vides dans addition sur plusieurs feuilles
    Par bernard41 dans le forum Excel
    Réponses: 16
    Dernier message: 16/11/2013, 18h01
  3. Collision sur des nombres aléatoires
    Par sliderman dans le forum Requêtes
    Réponses: 4
    Dernier message: 03/07/2009, 13h55
  4. Etude sur les nombres pseudo-aléatoires
    Par odsen.s dans le forum C
    Réponses: 14
    Dernier message: 21/05/2007, 01h09
  5. Réponses: 3
    Dernier message: 08/09/2003, 16h06

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