Recherche et addition de plusieurs valeurs dans différent onglet

Résolu
chou999 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à Tous,

Je ne suis pas expert de Excel alors je demande votre aide pour mon problème.

Je voudrais rechercher des valeurs sur 4 ou 5 Feuilles (dept 1, dept 2, dept 3 .. dept5) du même classeur. chaque tableau de ces feuilles a le même format colonne A "Code Projet" ,colonne B "engagé", colonne C "Reste à engager" , chaque feuille correspond à un département différent.
je voudrais afficher dans un onglet "Conso", un tableau colonne A "codes fonds", ou je récupère les codes fond de tout les départements "dept1 jusqu’à dept5", je supprime les doublons et je les copier cette colonne "codes fonds".
Puis sur la colonne B "total engagés de ma feuille "conso", je voudrais afficher la somme des engagés de chaque code fond (colonne B des feuilles "dept1 jusqu’à dept5"), et pareil pour le Reste à engager.

Merci infiniment pour votre aide, cela va beaucoup m'aider à avancer sur mon projet.

Cordialement,

10 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Re,

    Postes une exemple de ton fichier sur cjoint.com comme demandé si tu veux avoir de l'aide car on a besoin de connaitre la structure de ton fichier

    Cdlmnt
    Via
    0
  2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour chou999

    Pas besoin d'un bouton pou actualiser, une fonction personnalisée suffit :
    https://mon-partage.fr/f/dWXpZhL9/

    Cdlmnt
    Via
    0
  3. chou999 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
     
    RE-Bonjour VIA,

    Vous êtes maaagnifique :)))
    Grand Merci, ça marche nickel.

    J'ai repris la même fonction je l'ai appliquer sur les colonnes réalisé et RAE, et ça a marché.

    https://www.cjoint.com/c/GJzmf61tQwd

    Il me reste un seul truc, sur l'onglet "Conso", je voudrais récupéré les codes fond triés et sans doublons automatiquement, après la mise à jour des fiches département, pourrais-tu m'aider la dessus, je suis partie dans des blocs de codes de tri et de copie (voir ci dessous), mais n'a pas l'aire d'être bon:


    Sheets("DIR1").Select
    Range("A7:A200").Select
    Selection.Copy
    Sheets("CONSO").Select
    Range("A2").Select

    Sheets("DIR1").Select
    Range("A224:A242").Select
    Range("A242").Activate

    Range("A30:A229").Select
    Selection.Copy
    Sheets("CONSO").Select

    Range("A1").Select
    ActiveSheet.Paste
    Range("A2:A171").Select
    Application.CutCopyMode = False


    Je vous remercie infiniment,
    Chaimaa
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Re

    Macro à mettre dans un module de l'éditeur VBA (peut être à la suite des autres) puis à lancer depuis la page CONSO depuis l'onglet Developpeur - Macros :
    Sub codes()
    x = 1
    ' boucle sur feuilles
    For f = 2 To 6
    Dim ligneF As Long
    'dernière ligne remplie
    ligneF = Sheets(f).Columns(1).Find("*", , , xlWhole, xlByColumns, xlPrevious).Row
    For n = 2 To ligneF
    ' si commence par P
    If Left(Sheets(f).Range("A" & n), 1) = "P" Then
    'incrémentation de x et copie en ligne x de CONSO
    x = x + 1
    Sheets("CONSO").Range("A" & x) = Sheets(f).Range("A" & n)
    End If
    Next
    Next
    ' suppression des doublons
    Range("A1:A" & x).Select
        ActiveSheet.Range("$A$1:$A$21").RemoveDuplicates Columns:=1, Header:=xlYes
        ' tri alpha
        Range("A1:A" & x).Select
        ActiveWorkbook.Worksheets("CONSO").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("CONSO").Sort.SortFields.Add Key:=Range("A2:A" & x), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("CONSO").Sort
            .SetRange Range("A1:A" & x)
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End Sub

    Cdlmnt
    Via
    0
    1. chou999 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
       
      Via,
      Chapeau !
      Vous êtes génial :)), ça a marché très bien, excellent job !

      Je vous souhaite une très bonne continuation

      Grand Merci
      0
      1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759 > chou999 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
         
        Tant mieux

        Bonne continuation également et n'hésites pas à revenir si nécessaire

        Cdlmnt
        Via
        0
  6. chou999 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonjour Via,

    Je reviens vers toi, concernant, le même sujet :)

    J'ai commencé à travailler sur mon fichier, "le vrai", les fonctions ils ont marché nickel sans aucun pb (je t'en remercie) par contre la macro, j'ai fais toutes les modifications pour l'adapter à mon fichier, mais ça ne marche pas !
    j'ai eu un message d'erreur "variable objet ou variable de bloc with non définie", puis après j'ai fais des modifications partout et bim ! bug total :p

    l'idée reste toujours la même chercher les codes, commençant par P, puis les trier, supprimer les doublons puis les stocker dans le tableau conso, comme ça à l'aide des fonctions, je pourrais actualiser les budgets.

    https://www.cjoint.com/c/GJAqkHhxDKd

    En Pj, le fichier si tu pourrais m'aider la-dessus aussi :)

    grand merci à l'avance,

    Cordialement,
    Chaimaa
    0
  7. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour chou

    Ton fichier avec la macro rectifiée
    https://mon-partage.fr/f/pHOJUfkA/

    Par contre j'ai perdu les liaisons qui devaient y avoir avec une autre feuille

    Cdlmnt
    Via
    0
    1. chou999 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonsoir Via,

      Je n'ai pas compris en fait, pour les liaisons, et je n ai pas retrouvé la macro, ni les fonctions :)) ! j'ai peut être un pb sur excel Exel, j’utilise un un ordi chez moi qui déconne en plus :p
      0
      1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759 > chou999 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
         
        Bon alors je t'envoie le code de la macro à mettre dans un module de l'éditeur VBA
        Sub codes()
        x = 7
        ' boucle sur feuilles
        For f = 2 To 5
        Dim ligneF As Long
        'dernière ligne remplie
        ligneF = Sheets(f).Columns(1).Find("*", , , xlWhole, xlByColumns, xlPrevious).Row
        For n = 2 To ligneF
        ' si commence par P
        If Left(Sheets(f).Range("A" & n), 1) = "P" Then
        'incrémentation de x et copie en ligne x de CONSO
        x = x + 1
        Sheets(1).Range("B" & x) = Sheets(f).Range("A" & n)
        End If
        Next
        Next
        
        
        ' suppression des doublons et remise en forme
           Range("B8:B39").Select
            ActiveSheet.Range("$B$8:$B$39").RemoveDuplicates Columns:=1, Header:=xlNo
            Range("B8:B22").Select
            With Selection.Interior
                .PatternColorIndex = xlAutomatic
                .Color = 10498160
                .TintAndShade = 0
                .PatternTintAndShade = 0
            End With
            Selection.Borders(xlDiagonalDown).LineStyle = xlNone
            Selection.Borders(xlDiagonalUp).LineStyle = xlNone
            With Selection.Borders(xlEdgeLeft)
                .LineStyle = xlContinuous
                .ColorIndex = 0
                .TintAndShade = 0
                .Weight = xlThin
            End With
            With Selection.Borders(xlEdgeTop)
                .LineStyle = xlContinuous
                .ColorIndex = 0
                .TintAndShade = 0
                .Weight = xlThin
            End With
            With Selection.Borders(xlEdgeBottom)
                .LineStyle = xlContinuous
                .ColorIndex = 0
                .TintAndShade = 0
                .Weight = xlThin
            End With
            With Selection.Borders(xlEdgeRight)
                .LineStyle = xlContinuous
                .ColorIndex = 0
                .TintAndShade = 0
                .Weight = xlThin
            End With
            With Selection.Borders(xlInsideVertical)
                .LineStyle = xlContinuous
                .ColorIndex = 0
                .TintAndShade = 0
                .Weight = xlThin
            End With
            With Selection.Borders(xlInsideHorizontal)
                .LineStyle = xlContinuous
                .ColorIndex = 0
                .TintAndShade = 0
                .Weight = xlThin
            End With
             Range("B23:B39").Select
            With Selection.Interior
                .Pattern = xlSolid
                .PatternColorIndex = xlAutomatic
                .ThemeColor = xlThemeColorDark2
                .TintAndShade = -9.99786370433668E-02
                .PatternTintAndShade = 0
            End With
        End Sub
        


        Tu n'as plus après qu'à assigner cette macro au bouton que tu as mis dans la feuille
        0
  8. chou999 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonjour VIA,

    Merci pour le code, ça marche très bien sur, ça actualise les codes nickel!

    Par contre, les chiffres du tableau, il ne se mettent pas à jour, j'ai réussi à faire cela sur mon fichier test, en lançant la macro, les fonctions mettent à jour mes champs engagé, .. atterissage, et je ne vois pas du tout pk ça ne marche pas sur mon fichier.

    Merci pour ton aide,

    Chou
    0
  9. chou999 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
     
    Via,

    Ci joint le fichier, en fait, quand je fais un tri simple de A à Z, sur la liste des codes sur ma feuille "Conso direction", les fonctions affichent les totaux.

    https://www.cjoint.com/c/GJBizQPjSud

    et Si j'appui sur le bouton actualiser les codes projets, j'ai des zéros partout :p

    J'ai cassé ma tête pour trouver lié les fonctions avec la macro affecté au bouton ! je n'ai pas trouvé.

    Merci énormément pour tes efforts !

    Bonne journée,

    CHOU
    0
  10. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour chou

    Effectivement le reporting annule les résultats des fonctions personnalisées, je ne sais pas pourquoi !!
    Pour les réactiver ajoutes ces lignes en fin de la macro codes entre le dernier End with et le End sub :
    For n = 8 To 22
       Range("C" & n).FormulaR1C1 = "=Budget(RC[-1])"
       Range("D" & n).FormulaR1C1 = "=Engagé(RC[-2])"
       Range("E" & n).FormulaR1C1 = "=receptionné(RC[-3])"
       Range("F" & n).FormulaR1C1 = "=mforte(RC[-4])"
       Range("G" & n).FormulaR1C1 = "=mfaible(RC[-5])"
        Range("H" & n).FormulaR1C1 = "=atterissage(RC[-6])"
       Next


    De plus tu peux supprimer le module 2 qui ne contient que des enregistrements de macros pour essai et ne sert à rien

    Bonne journée
    Via
    0