![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: janvier 2008
Messages: 106
|
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! ![]() |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: juin 2007
Localisation: Montpellier
Version Excel : Excel 2000 (PC)
Messages: 754
|
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 |
|
|
|
|
|
#3 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: janvier 2008
Messages: 106
|
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 ![]() |
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: janvier 2008
Messages: 106
|
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)"
|
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: juin 2007
Localisation: Montpellier
Version Excel : Excel 2000 (PC)
Messages: 754
|
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 |
|
|
|
|
|
#8 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: mars 2008
Version Excel : Excel 2003 (PC)
Messages: 745
|
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)"
__________________
@+ cbea |
|
|
|
|
|
#9 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: janvier 2008
Messages: 106
|
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! |
|
|
|
|
|
#10 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: janvier 2008
Messages: 106
|
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
Avez-vous une idée ce qui cloche ? Merci ![]() |
|
|
|
|
|
#11 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: juin 2007
Localisation: Montpellier
Version Excel : Excel 2000 (PC)
Messages: 754
|
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 |
|
|
|
|
|
#12 (permalink) |
|
XLDnaute Impliqué
Date d'inscription: mars 2008
Version Excel : Excel 2003 (PC)
Messages: 745
|
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))"
__________________
@+ cbea |
|
|
|
![]() |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| Joindre 2 feuilles excel entre eux. | Hysteresis | Forum Excel | 5 | 19/07/2006 08h49 |
| transition entre feuilles excel | MALIKA | Forum Excel | 5 | 13/05/2006 12h27 |
| pb de correspondance entre feuilles excel | Sébastien 21 | Forum Excel | 2 | 02/01/2006 23h34 |
| lien entre feuilles excel | Sébastien | Forum Excel | 1 | 11/07/2005 17h03 |
| lien entre feuilles excel | Sébastien | Forum Excel | 1 | 11/07/2005 17h02 |