Compter dans une liste de code le nombre d'occurrence simultanée dans chaque cod

Résolu
Signaler
Messages postés
35
Date d'inscription
mercredi 4 janvier 2012
Statut
Membre
Dernière intervention
12 septembre 2013
-
Messages postés
35
Date d'inscription
mercredi 4 janvier 2012
Statut
Membre
Dernière intervention
12 septembre 2013
-
Salut, j'ai un problème sur l'execution de mon code ça m'envoi tjrs zeros.
En fait je voudrai compter le nombre de code dans lesquels apparaissent 11 au debut et a à la fin. Voici le programme que j'ai essayé merci de m'aider.

Sub quotass()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim l As Integer
Dim nb As Integer
nb = 0
'For i = 1 To 275
Feuil1.Activate
Range("A1").Select
Do While Not (IsEmpty(ActiveCell))
If Left(Feuil1.Range("A1").Value, 2) 11 And Right(Feuil1.Range("A1").Value, 1) a Then
nb = nb + 1
End If
Selection.Offset.cell(1, 0).Select
Loop
End Sub

13 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Réveille-toi un peu, hein !
Si tu as cette erreur, cela veut dire que tu n'as pas de feuille nommée "Feuil1"
Remplace donc "Feuil1" par le nom donc à la feuille concernée !

PS : pour ton information : j'ai testé ce code ===>> sans faille !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Bonjour,

1) 11 et a devraient être mis entre guillemets

2) utilise la propriété .text au lieu de la propriété .value

3)
Do While Not (IsEmpty(ActiveCell))
  If Left(Feuil1.Range("A1").Value, 2) 11 And Right(Feuil1.Range("A1").Value, 1) a Then
    nb = nb + 1
  End If
  Selection.Offset.cell(1, 0).Select
Loop 

fait que tu es toujours sur la cellule A1 dans ta condition If !

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
Je pense à cela Mais là ou j'ai mis Sheets(2) il faut remplacer le 2 par le bon num de page et peut être adapter un ou deux choses.

Sub quotass()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim l As Integer
Dim nb As Integer
nb = 0
i=1
v_max = Sheets(2).Range("A1:A65536").SpecialCells(xlCellTypeLastCell).Row
While (v_max >= i)
  If Left(Sheets(2).Range("A" & i), 2) "11" And Right(Sheets(2).Range("A" & i), 1) "a"Then nb  = nb + 1
  i=i+1
  Wend
End Sub


Aussi si la cellule peut commencer avec des espaces ou finir avec utilise la fonction Trim.
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
J'avais pas vu que c était clos! Plus
Messages postés
35
Date d'inscription
mercredi 4 janvier 2012
Statut
Membre
Dernière intervention
12 septembre 2013

ça ne marche pas ça m'affiche erreur 438
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Peux-tu nous exposer TRES CLAIREMENT ce que tu cherches à faire exactement.

Plus particulièrement ce point(-là :
Do While Not (IsEmpty(ActiveCell)) 

S'agit-il de cesser de parcourir dès la première cellule vide (donc même si d'autres sont pleines plus bas) ou de parcourir jusqu'à la dernière cellule remplie ?
Ce n'est pas la même chose) !

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
35
Date d'inscription
mercredi 4 janvier 2012
Statut
Membre
Dernière intervention
12 septembre 2013

4u4me4us désolé je l'avais clos par inattention. Mais ça ne marche tjrs pas le nb ne s'incrémente tjrs pas.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
Peux-tu s'il te plait répondre à la question que je t'ai posée ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
35
Date d'inscription
mercredi 4 janvier 2012
Statut
Membre
Dernière intervention
12 septembre 2013

Oui c ça ucfoutu il s'agit de parcourir jusqu'à la dernière cellule pleine.
En j'ai une colone là ou il y a une serie de numeo d'immatriculation de 14 caractère je voudrai compter le nombre d'immatriculation dans lesquels se trouve 11 en première position et a en dernière position. Sur mon ficher il y en a plein, mais le code m'affiche zeros
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
DE'où l'absolue nécessité d'être toujours TRES PERECIS !
C'est alors tout bête ===>>

Dim nb As Integer, c As Range
 For Each c In Worksheets("Feuil1").Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
   If c.Text Like "11*a" Then nb = nb + 1
 Next
 MsgBox nb


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
35
Date d'inscription
mercredi 4 janvier 2012
Statut
Membre
Dernière intervention
12 septembre 2013

ça ne merche pas errreur d'execution 9
Messages postés
781
Date d'inscription
lundi 22 janvier 2007
Statut
Membre
Dernière intervention
30 octobre 2013
3
If c.Text Like "11*a" Then nb = nb + 1. Très beau ucfoutu. Je prend
Messages postés
35
Date d'inscription
mercredi 4 janvier 2012
Statut
Membre
Dernière intervention
12 septembre 2013

Cool c'est bon merci bcp ça tourne maintenant.