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 :

Chercher et sommer [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 105
    Par défaut Chercher et sommer
    Bonjour tout le monde,

    Je me permets de vous solliciter encore une fois pour un coup de pouce.

    J’ai des budgets dans ma colonne A et la liste des enterprises correspondantes dans ma colonne B.

    Pour un même budget je peux avoir dans la cellule correpondante de la colonne B: 1 seule enterprise, plusieurs enterprises séparées par / ou aucune enterprise (une meme enterprise peut correspondre à plusieurs budget et donc elle peut se répéter dans ma colonne B)

    Je souhaite faire une macro qui qui cherche pour chaque enterprise l’ensemble des budgets qui lui sont affectés et qui les somme pour chaque enterprise (car une enterprise peut paraitre a plusieurs reprises dans ma colonne B, exemple: B2: Vinci, B7: SFR/Vinci/Orange…).

    Dans le cas ou il n y a pas d’entreprise correspondante au niveau de la colonne B alors ignorer.

    En définitive, je souhaite établir un classement des enterprises pas budget.

    N’hesiter pas à me sousmettre vos idées, merci beaucoup.

    Je reste à votre disposition pour vous soumettre un échantillon de mon fichier.

    Cordialement,

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 317
    Par défaut
    Bonjour,

    Essaie ce code :

    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
    Sub entrep()
    Dim Cel As Range
    Dim I As Byte
    Dim LesEntreprises As Object
    Dim Tmp
    Set LesEntreprises = CreateObject("Scripting.Dictionary")
    For Each Cel In Range("B2:B" & [A65000].End(xlUp).Row)
        If Cel <> "" Then
            Tmp = Split(Cel, "/")
            For I = LBound(Tmp) To UBound(Tmp)
                LesEntreprises(Trim(Tmp(I))) = LesEntreprises(Trim(Tmp(I))) + Cel.Offset(, -1)
            Next I
        End If
    Next Cel
    [D1].Resize(LesEntreprises.Count) = Application.Transpose(LesEntreprises.Keys)
    [E1].Resize(LesEntreprises.Count) = Application.Transpose(LesEntreprises.Items)
    End Sub
    Bonne journée

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 105
    Par défaut
    Bonjour mapeh,

    merci pour ta reponse mais ca ne marche malheureusement pas du tout.

    Je vous mets ci-joint un exemple de mon fichier comme ca, ca sera plus concret...

    Merci beaucoup en tout cas

    Cordialement,
    Fichiers attachés Fichiers attachés

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 317
    Par défaut
    Bonjour,

    Euh, tu ne m'aides pas beaucoup, par ces termes :

    merci pour ta reponse mais ca ne marche malheureusement pas du tout.
    Pour moi, dans ton fichier, cela fonctionne....

    OK, je n'avais pas prévu le nettoyage, avant le déroulement du code

    Essaie ainsi :

    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 entrep()
    Dim Cel As Range
    Dim I As Byte
    Dim LesEntreprises As Object
    Dim Tmp
    Set LesEntreprises = CreateObject("Scripting.Dictionary")
    Columns("D:E").ClearContents
    For Each Cel In Range("B2:B" & [A65000].End(xlUp).Row)
        If Cel <> "" Then
            Tmp = Split(Cel, "*")
            For I = LBound(Tmp) To UBound(Tmp)
                LesEntreprises(Trim(Tmp(I))) = LesEntreprises(Trim(Tmp(I))) + Cel.Offset(, -1)
            Next I
        End If
    Next Cel
    [D1].Resize(LesEntreprises.Count) = Application.Transpose(LesEntreprises.Keys)
    [E1].Resize(LesEntreprises.Count) = Application.Transpose(LesEntreprises.Items)
    End Sub
    PS, et si ce n'est pas cela que tu désires, prière de bien vouloir mettre ce que tu désires dans des cellules colorées..

    Bonne journée

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

Discussions similaires

  1. Chercher et renvoyer le path d'un fichier .java
    Par dzincou dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 08/09/2004, 11h00
  2. Chercher le package contenant la librairie...
    Par GLDavid dans le forum Debian
    Réponses: 6
    Dernier message: 27/07/2004, 17h37
  3. chercher des données dans sa propre requete...
    Par shadowbob dans le forum Requêtes
    Réponses: 4
    Dernier message: 27/06/2004, 17h13
  4. chercher l'index maxi d'une table
    Par picoti2 dans le forum Bases de données
    Réponses: 13
    Dernier message: 22/03/2004, 08h07
  5. [VB6]Chercher l'adresse IP
    Par Shea13 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/02/2004, 17h07

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