VBA - recherche verticale avec cumule des données

  • Initiateur de la discussion Initiateur de la discussion Ludo_R
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Ludo_R

XLDnaute Nouveau
Bonsoir,

Je souhaite réalisé en VBA une recherche dans un tableau (feuille DPGF), la valeur cherchée se trouve sur la feuille 1 (cellule A1), et dans la cellule A2, je dois au final avoir le cumul de la colonne B (feuille DPGF) de toutes les lignes ayant pour référence (dans la colonne A) la valeur A1 (feuille 1)

Aah c'est pas clair.
Je vous joint le fichier alors 🙂

Merci pour votre aide, car la je suis sec et débutant (Novice --) et j'ai écris un morceau de code mais qui visiblement n’amène à rien.

Regarde la pièce jointe rechercheVcumulée.xlsm
 
Re : VBA - recherche verticale avec cumule des données

Bonsoir,

Voici une solution avec la méthode Find.
Code:
Sub recherche_quantité()
Dim Plage As Range, C As Range
Dim firstAddress As String
Dim Cumul As Double
    With Worksheets("DPGF")
        Set Plage = .Range("A4:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
        Set C = Plage.Find(Worksheets("1").Range("A1"), LookIn:=xlValues)
        If Not C Is Nothing Then
        firstAddress = C.Address
        Do
            Cumul = Cumul + C.Offset(0, 1)
            Set C = Plage.FindNext(C)
        Loop While Not C Is Nothing And C.Address <> firstAddress
        Set C = Nothing
    End If
    End With
    Set Plage = Nothing
    Worksheets("1").Range("B1") = Cumul
End Sub

A+
 
Re : VBA - recherche verticale avec cumule des données

Bonsoir à tous,

Ludo_R, une solution par formule :
Code:
=SOMME.SI(DPGF!$A$4:$A$10000;$A$1;DPGF!$B$4:$B$10000)

et une solution par macro :
VB:
Sub Cumul()
    Dim i As Integer, Cum As Double
    Cum = 0
    For i = 1 To Sheets("DPGF").Range("A65536").End(xlUp).Row
        If Cells(i, 1) = Sheets("1").Range("A1") Then Cum = Cum + Cells(i, 2)
    Next
    Sheets("1").Range("B1") = Cum
End Sub

Voir fichier en pièce jointe.

A+
 

Pièces jointes

Re : VBA - recherche verticale avec cumule des données

Juste une petite question.
Au final le fichier dans lequel j'aurais cette Macro (et bien d'autres) risque d'être très gros (plus de 200 feuilles, avec formules et macros), comment puis-je savoir quelle code sera plus rapide qu'un autre pour faire la même chose, le cas ci-dessus par exemple.

Pourriez-vous m'éclairer ?
Merci.
 
Re : VBA - recherche verticale avec cumul des données

avec un peu de retard, je me replonge dans mon fichier.
Fred0o je te remercie pour ton aide, j'ai légèrement modifié ta proposition pour l'adapter à mon besoin.

Code:
Sub Cumul_qté()
    Dim cpt_lig As Integer
    Dim Cum_qté As Double
    Dim act_sht As Worksheet
    cpt_lig = 0
    Cum_qté = 0
    Set act_sht = ActiveSheet
    Range("art") = act_sht
    For cpt_lig = 1 To Sheets("DPGF").Range("A65536").End(xlUp).Row
        If Cells(cpt_lig, 1) = act_sht.Range("art") Then Cum_qté = Cum_qté + Cells(cpt_lig, 4)
    Next
    Sheets(act_sht).Range("qt") = Cum_qté
End Sub

J'ai changé les variables (c'est pas sorcié), j'en ai juste ajouté une act_sht (définie comme feuille), je lui donne le nom de la feuille dans laquelle je travail (car j'ai beaucoup de feuilles dans lesquelles je vais lancer cette macro).
et là je suis bloqué, car ça ne fonctionne pas. si je peux encore avoir un petit coup de main 😉
 
Re : VBA - recherche verticale avec cumule des données

bonjour
J' ai essayer la macro en changeant sur la colonne 1 les chiffres en lettre et ça marche
Par contre, j' ai essayé de mettre des mots et en n'en choisissant qu'un dans A1 et évidemment en adaptant le code, mais je n'y parviens pas. le but étant de faire un cumul de plusieurs lignes suivant des mots clés répétitifs , étant donnée que dans chaque ligne il y a des désignations différentes mais contenant ces mots clés;
voilà, j' espere que c' est plus clair. Merci d' avance.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
312
Retour