NB Si entre 2 feuilles vba excel

  • Initiateur de la discussion Initiateur de la discussion matrix
  • 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 !

matrix

XLDnaute Occasionnel
Bonjour à tous,

Dans mon fichier excel, dans la feuille "COUT PAR PÉRIODE", colonne G, je voudrais qu'il me donne le nombre de fois que le nom inscrit dans la colonne A de chaque ligne comme par exemple sur le fichier excel joint, dans la cellule A5 avec la description "7 way plug" suivi de la valeur de la cellule G3 avec la valeur "1" se qui donne "7 way plug1".

Cette valeur doit être recherché dans la feuille "Tableau Cumulatif" colonne J.

Il dois faire la même chose pour tout les noms inscrit dans la colonne A de la feuille "COUT PAR PÉRIODE".

Donc si il y à un nom inscrit dans une cellule de la colonne A, il me cherche le nombre de fois que la valeur se trouve dans la feuille "Tableau Cumulatif" colonne J.

Comment faire svp.

Merci de votre aide! 🙂
 

Pièces jointes

Re : NB Si entre 2 feuilles vba excel

Bonjour,
Avec ce que j'ai compris, en G5 avec une plage de référence 'Tableau Cumulatif'!J7:J15 :
=NB.SI('Tableau Cumulatif'!J7:J15;CONCATENER('COUT PAR PÉRIODE'!$A5&'COUT PAR PÉRIODE'!$G$3))
A+
kjin
 
Re : NB Si entre 2 feuilles vba excel

Oui, ça c'est en écrivant une formule dans la cellule. ^Ca je sais faire.

Par contre je voudrais transformer ça en VBA pour que quand je clique sur un bouton, il me donne la valeur de cette formule que tu as fais et cela pour tous les noms de la colonne A.

Merci 🙂
 
Re : NB Si entre 2 feuilles vba excel

je fais le test avec ce script mais sans résultat,

Code:
 nbLignes = Cells(Rows.Count, "A").End(xlUp).Row
   
    Sheets("COUT PAR PÉRIODE").Range("G5:G" & nbLignes).Formula = "=DECALER('Tableau Cumulatif'!$J$7;;;NBVAL('Tableau Cumulatif'!$A:$A)-1)"
 
Re : NB Si entre 2 feuilles vba excel

Re,
Je n'avais pas compris "sans formule".
Code associé au bouton 2
Private Sub CommandButton2_Click()
Ref = Range("G3").Value
Set Plge = Sheets(2).Range("J7:J" & Range("J7").End(xlDown).Row)
For Each cel In Sheets(1).Range("A5:A" & Range("A5").End(xlDown).Row)
If cel.Value <> "" Then
cel.Offset(0, 6) = Application.WorksheetFunction.CountIf(Plge, cel & Ref)
End If
Next
End Sub

A+
kjin
 
Re : NB Si entre 2 feuilles vba excel

Bonsoir Matrix, kjin,

Une méthode plus courte avec ce code VBA :
Code:
    nbLignes = Cells(Rows.Count, "A").End(xlUp).Row
   
    Sheets("COUT PAR PÉRIODE").Range("G5:G" & nbLignes).Formula = "=COUNTIF(RefCumul,$A5&$G$3)"

RefCumul a été décrit dans le fichier joint précédemment.
 
Re : NB Si entre 2 feuilles vba excel

Merci cbea 😛,


Dernière chose, dans le même fichier, dans la colonne G nous avons le nB.Si, mais maintenant, j'ai besoins du Prix total qui correspond avec. Et se Prix total se trouve dans la feuille "Tableau Cumulatif" colonne N.

Comment faire svp


Merci de votre aide précieuse!
 
Re : NB Si entre 2 feuilles vba excel

Je viens de faire le test avec

Code:
Ref = Range("G3").Value
Set Plge = Sheets("Tableau Cumulatif").Range("J7:J" & Range("J7").End(xlDown).Row)
For Each cel In Sheets("COUT PAR PÉRIODE").Range("A5:A" & Range("A5").End(xlDown).Row)
If cel.Value <> "" Then
cel.Offset(0, 7) = Application.WorksheetFunction.SumIf(Plge.Offset(0, 4), cel & Ref)
End If
Next

Mais ça ne marche pas.

Avez-vous une idée ce qui cloche ?

Merci 🙂
 
Re : NB Si entre 2 feuilles vba excel

Bonjour,
Essaies comme ça:
Private Sub CommandButton2_Click()
Ref = Range("G3").Value
Set Plge1 = Sheets(2).Range("J7:J" & Range("J7").End(xlDown).Row)
Set Plge2 = Sheets(2).Range("N7:N" & Range("N7").End(xlDown).Row)
For Each cel In Sheets(1).Range("A5:A" & Range("A5").End(xlDown).Row)
If cel.Value <> "" Then
cel.Offset(0, 6) = Application.WorksheetFunction.CountIf(Plge1, cel & Ref)
cel.Offset(0, 7) = Application.WorksheetFunction.SumIf(Plge1, cel & Ref, Plge2)
End If
Next

End Sub

A+
kjin
 
Re : NB Si entre 2 feuilles vba excel

Bonjour Matrix, Kjin,

Voici une autre solution :
Dans la feuille "Tableau Cumulatif", déclarer une cellule nommée (utiliser le menu : Insertion/Nom/Définir...)
Nom : PrixCumul
Référence : =DECALER('Tableau Cumulatif'!$N$7;;;NBVAL('Tableau Cumulatif'!$A:$A)-1)

Code VBA :
Code:
    nbLignes = Cells(Rows.Count, "A").End(xlUp).Row
    Sheets("COUT PAR PÉRIODE").Range("H5:H" & nbLignes).Formula = "=SUMPRODUCT(($A5&$G$3=RefCumul)*(PrixCumul))"
 
- 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
1
Affichages
187
Réponses
10
Affichages
299
Réponses
2
Affichages
337
Retour