Classement Complexe sous Excel [Résolu]

Signaler
Messages postés
3
Date d'inscription
mardi 30 janvier 2007
Statut
Membre
Dernière intervention
23 mars 2007
-
Messages postés
3
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
13 juin 2009
-
Bonjour, voilà j'ai un soucis avec excel que je n'arrive pas a résoudre:

Sur ce tableau, j'aimerais incrementer les valeurs des cellules de la colonne G par rapport aux de H
Par exemple, je voudrais qu'il compte le nombre de fois qu'il trouve "A/FA3" dans la colonne H et qu'il incrémente les cases correspondantes à la colonne G.
Pour mieux me faire comprendre, je vais vous donner un exemple; :
On va prendre l'exemple suivant :
Ma formule ou ma macro deverra lire un ensemble de cellule de la colonne H(par ex de H2 à H8), et dans la colonne G, a chaque fois quelle trouve A/FA3 dans la colonne H3, il incrémente la case de la colonne G qui est en face de celle de la colonne H
Dans l'exemple du tableau, cela donneré ceci :

Vous voyer se que je recherche???

SI quelqu'un sait comment faire je suis preneur car la je seche vraiment

Merci de votre aide

RGsport

8 réponses

Messages postés
3
Date d'inscription
mardi 30 janvier 2007
Statut
Membre
Dernière intervention
23 mars 2007

OK je te remercie pour cette voie
Je peux valider ta réponse

Merci encore

RGsport
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Bonsoir,
une idée à approfondir
un tableau 2 dimensions T(Ligne,2)


1° Remplissage
For i = 1 to NbLignes   'nombre de lignes
  T(i,1)=ContenuCtlCl
  T(i,2)=ContenuClasse
Next


Parcourir avec deux compteurs
For i=1 To NbLignes
   If T(i,2)="A/FA3" Then
       ' tu remontes vers le haut à la recherche de la dernière valeur
       For j=i To 1 Step -1
          if T(j,2)="A/FA3" Then
              T(i,1)=T(j,1) +1
              Exit For
         End If
     Next      
   End If
Next

Prévoir quelque chose si la case est vide
peut être un test supplémentaire...
Messages postés
3
Date d'inscription
mardi 30 janvier 2007
Statut
Membre
Dernière intervention
23 mars 2007

Le T pour le tableau tu le définie comment????

RGsport
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Dim T() As String
Dim NbLignes As Integer
Tu initialises le NonLignes, et tu redimensionne ton tableau en conséquence
Redim T(NbLignes,2)


T étant de type String, il faut penser à la convertion dans
T(i,1)=Str(CInt(T(j,1)) +1)


Mais rien ne t' oblige à utiliser un tableau.
Tu peux tout aussi bien travailler directement avec ta grille,
en faisant référence à ligne,colonne.
l' important c' est d' exploites l' idée
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Avec cette formule, peut-être
=NB.SI($H$1:$H$50000;H1)-NB.SI(H2:H50000;H1)

Changer 50000 par le nombre de lignes à lire au besoin...

MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
En fait, changer aussi le 1 pour 2 si tu commences à écrire la formule sur la ligne 2...

MPi
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Bpnsoir,

Une idée idiote avant de me mettre au lit :

- observation : la colonne I (TEMPS) semble être au départ classé par ordre croissant


Si tel est bien le cas,


 


METHODE :


1) trier par ordre croissant la colonne H (CLASSE)
2)  parcourir la colonne H de haut en bas et mettre dans la ligne en cours correspondante de la colonne G une valeur qui s'incrémente si la ligne/colonne H du dessus est égale à la ligne/colonneH en cours et y "coller" 1 si tel n'est pas le cas.
3) remettre dans l'état d'origine en retriant par ordre croissant la colonne I (TEMPS)


Je suis fou....
Messages postés
3
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
13 juin 2009

je veux savoir comment incrémenter la valeur d une cellules de datagridview ( quantité_produit)si elle trouve ke le nom du produit déja éxister
merci