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 :

méthode qui alimente une variable tableau


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Par défaut méthode qui alimente une variable tableau
    bonjours j'ai un crée un code vba qui compte des valeurs et les reclasse dans un tableau


    le code est le suivant

    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
    Sub compteur()
    Dim sh As Worksheet
        Dim Ligne As Long
        For Each sh In Worksheets(Array("AAR35", "AAR", "RST", "PCH", "EXP DIF"))
            Ligne = sh.Range("ae" & sh.Rows.Count).End(xlUp).Row
        For i = 2 To Ligne
        For j = 4 To 27
        For k = 2 To 6
        If Cells(k, 3) = sh.Name Then
            If Cells(1, j) = sh.Cells(i, 32) Then
            Cells(k, j) = Cells(k, j) + 1
            End If
        End If
        Next k
        Next j
        Next i
        Next sh
    End Sub
    le soucis c'est que la durée du traitement est relativement longue donc je voudrais savoir s' il existe un méthode pour aller plus vite
    j'ai entendu parler d'un methode qui alimente une variable tableau mais je ne vois pas comment faire

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    En gros, cela pourrait ressembler à cela
    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
    Sub compteur()
    Dim sh As Excel.Worksheet, orng As Excel.Range, v As Variant
    Dim Ligne As Long, i As Long, j As Integer, k As Integer
     
    For Each sh In Worksheets(Array("AAR35", "AAR", "RST", "PCH", "EXP DIF"))
        Ligne = sh.Range("ae" & sh.Rows.Count).End(xlUp).Row
        Set orng = sh.Range("A1:AF" & Ligne)
        v = orng.Value
        For i = 2 To Ligne
            For j = 4 To 27
                For k = 2 To 6
                    If v(k, 3) = sh.Name Then
                        If v(1, j) = v(i, 32) Then
                            v(k, j) = v(k, j) + 1
                        End If
                    End If
                Next k
            Next j
        Next i
        orng.Value = v
    Next sh
    End Sub
    Fait attention à l'indentation du code!

    PGZ

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Par défaut
    ben visiblement ca ne fonctionne pas pourtant le code semble fonctionner
    mais ca ne m'insere aucune donnée dans le tableau

  4. #4
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Re,

    ET le code que tu as donné fonctionnait?
    Tu as testé ce que je t'ai envoyé texto ou tu as adapté?

    Tu peux mettre une feuille renseignée et dire ce qu'on doit obtenir?


    PGZ

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Par défaut
    ben à la rigueur je vais t'envoyé le fichier tu comprendras mieux

    donc tu trouveras la procédure compteur dans le module 5 qui va alimenter le premier tableau dans tableau de bord

    donc je viens de tester mon programme il marche correctement

    mais comme il est lourd j'ai supprimer des pages pour pouvoir le joindre

    et tu constateras que le temps de chargement est relativement lent

  6. #6
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Hello.

    Je ne vois pas ton code marcher. D'ailleurs ton test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    For k = 2 To 6
        If Cells(k, 3) = sh.Name Then
    regarde en colonne C sur les lignes 2 à 6 si on trouve le nom de la feuille. Or, en colonne C, il n'y a que des valeurs numériques...

    Avec j = 4 à 27 et k = 2 à 6, Cells(k,j) balaie les cellules de la plage D2:AA26

    J'efface le contenu des cellules D2:H5 et je lance ton code : les cellules restent vides.

    Mais bon, si tu trouves que ton code marche, c'est très simple de l'adapter à l'utilisation d'une var tableau.

    Un peu de lecture, par exemple : Conceptualisation des variables tableau en VBA et Application à l'optimisation du code sous Excel


    Cordialement,

    PGZ

  7. #7
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Par défaut
    non ca marche je ne sais pas pourquoi dsl et merci encore

  8. #8
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Pourrais-tu être plus précis.
    Quelle est l'erreur et à quelle ligne?
    Ou quel est le résultat obtenu et le résultat attendu?

  9. #9
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Par défaut
    non c'est bon ca marche merci^^

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

Discussions similaires

  1. [XL-2002] Alimentation d'une variable tableau par userform
    Par Troudz dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 08/02/2011, 16h45
  2. Réponses: 7
    Dernier message: 06/08/2008, 19h28
  3. Fonction qui change une variable
    Par Taz_8626 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/03/2006, 13h54
  4. [Tableaux] récuperer une variable tableau passé par URL
    Par molesqualeux dans le forum Langage
    Réponses: 2
    Dernier message: 23/12/2005, 02h12
  5. Acces à une variable-tableau de PHP
    Par Erwan21 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/02/2005, 14h55

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