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 :

Operations tableaux et boucle sur toutes les feuilles


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Operations tableaux et boucle sur toutes les feuilles
    Bonjour,

    Je suis tout nouveau sur le site et vous remercie d'avance pour vos réponses.
    Actuellement en stage, je dois réaliser une macro excel permettant de mettre en forme des données importées "brutes".
    Note: Chaque onglet comporte des données semblables (les colonnes sont les mêmes, en revenche, le nombre de ligne peut varier)
    J'ai donc mis les mains dans le VBA et le découvre doucement, j'ai créé un programme dans l'optique de répéter les actions suivantes pour chaque feuille du classeur:

    1 - Création d'un tableau s'adaptant au nombre de lignes (ca fonctionne), chaque tableau porte le nom de la feuille de calcul correspondante. => J'arrive à le faire répéter pour chaque feuille
    2 - Opérations entre les différentes colonnes (exemple, je veux que dans le colonne 4, on y trouve le produit de la colonne 2 et 3) => Ca fonctionne mais je n'arrive pas à répéter cette opération à cause du nom des tableaux...

    Mes tableaux ont donc pour nom "nomdefeuille1", "nomdefeuille2" etc... ActiveSheet.Name renvois normalement au nom de la feuille (et donc dans mon cas au nom de chaque tableau) mais je n'arrive pas à l'exploiter => J'ai mis des "?????" à la fin de mon programme pour vous demander que mettre ?

    Pourriez vous s'il vous plait m'aider pour pouvoir réussir à boucler mon étape 2 sur tous les onglets, je suis sur que c'est un détail mais pardonnez moi, je débute... ^^

    Je reste à votre disposition, vous remercie d'avance et vous fournit mon script

    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
    Sub Boucle_de_répétition()
    Dim WS_Count As Integer
    Dim I As Integer
    ' Set WS_Count equal to the number of worksheets in the active
    ' workbook.
    WS_Count = ActiveWorkbook.Worksheets.Count
    ' Begin the loop.
    For I = 1 To WS_Count
    If I < WS_Count Then
    Call Creation_de_tableau
    Call Operations
    ActiveSheet.Next.Select
    Else
    Call Creation_de_tableau
    Call Operations
    End If
    Next I
    End Sub
     
     
    Sub Creation_de_tableau()
    'Données rangées dans un tableau partant le même nom que celui de la feuille active
    'Selection d'une box balayant le domaine utilisé
    Range("A1", Range("A1").End(xlToRight)).Select
    Range(ActiveCell, ActiveCell.End(xlToLeft)).Select
    'Création du tableau à partir de la selection
    ActiveSheet.ListObjects.Add(xlSrcRange, , , xlYes).Name = _
    ActiveSheet.Name
    ActiveSheet.ListObjects(ActiveSheet.Name).TableStyle = "TableStyleLight8"
    End Sub
     
     
    Sub Operations()
    Range("???????[Colonne4]").FormulaR1C1 = "=????????[Colonne2]*????????[Colonne3]"
    End Sub

  2. #2
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    891
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 891
    Points : 831
    Points
    831
    Par défaut Bonsoir undercorejay et les foromeurs
    avec l'enregistreur de macro on obtient quelque chose comme :
    =TabNom[[#Cette ligne];[EnteteCol2]]*TabNom[[#Cette ligne];[EnteteCol3]]
    en modifiant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Range("D2").FormulaR1C1 = _
            "=" & ActiveSheet.Name & "[[#This Row],[EnteteCol2]]*" & ActiveSheet.Name & "[[#This Row],[EnteteCol3]]"
    ESVBA

Discussions similaires

  1. [XL-2003] macro impossible sur toutes les feuilles
    Par alucard_xs dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 04/06/2012, 22h23
  2. [XL-2003] Boucle For sur toutes les feuilles d'un classeur
    Par dlight dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/10/2010, 22h48
  3. Mise en page avant impression sur toutes les feuilles du classeur
    Par fribelle dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/11/2008, 09h48
  4. Récuperer le clique sur toutes les feuilles
    Par faube dans le forum Excel
    Réponses: 6
    Dernier message: 03/08/2007, 10h17
  5. Action sur toutes les feuilles d'un classeur
    Par beurnoir dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 23/12/2005, 15h11

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