Compter les lignes

simkmil Messages postés 481 Date d'inscription   Statut Membre Dernière intervention   -  
simkmil Messages postés 481 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'ai un fichier comportant une liste de prix d'achat, la longueur de cette liste varie; je voudrais, en VBA compter les lignes, puis calculer les prix de vente dans une colonne supplémentaire.

merci de votre aide

<config>Seven Home, Acer Aspire V3 771G pour le portable (HD 750 Go, Ram 8Go)
Seven Pro, MSI 4Gb,HD 1 Tb pour le pc bureau
XP et Windows 8 sur un plus ancien P IV

4 réponses

Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Salut,

en supposant que tes tarifs se trouvent colonne B entre B2 et B20, trois lignes de codes, un doit correspondre à tes besoins

Sub Compte_cellule()
MsgBox WorksheetFunction.CountIf([B2:B20], ">""") 'compte cellule texte
MsgBox WorksheetFunction.CountA([B2:B20]) 'compte cellule non vide
MsgBox WorksheetFunction.Count([B2:B20]) 'compte cellule numérique
End Sub
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

répondu trop vite j'ai zappé que la plage était variable, ces lignes s'adaptent automatiquement

Sub Compte_cellule()
MsgBox WorksheetFunction.CountIf(Range(Range("B2"), Range("B65000").End(xlUp)), ">""") 'compte cellule texte '.EntireRow.Insert
MsgBox WorksheetFunction.CountA(Range(Range("B2"), Range("B65000").End(xlUp))) 'compte cellule non vide
MsgBox WorksheetFunction.Count(Range(Range("B2"), Range("B65000").End(xlUp))) 'compte cellule numérique
End Sub
0
Simkmil
 
Merci beaucoup. ça marche à merveille.
Encore une petite question à ce sujet : quelle instruction dois je mettre pour récupérer le nombre se trouvant dans le msgbox ? (pour en faire une boucle après)
merci
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

tu remplaces msgbox
MsgBox WorksheetFunction.Count(Range(Range("B2"), Range("B65000").End(xlUp)))
par l'adresse d'une cellule exeple la cellule B2

range("B2")= WorksheetFunction.Count(Range(Range("B2"), Range("B65000").End(xlUp)))
ou plus court
[B2]= WorksheetFunction.Count(Range(Range("B2"), Range("B65000").End(xlUp)))
0
simkmil Messages postés 481 Date d'inscription   Statut Membre Dernière intervention   35
 
Merci, ça marche très bien MAIS j'ai encore un problème, en fait, je dois effacer les lignes qui se trouvent APRES un endroit variable.
Cet endroit variable, je peux le retrouver grâce a la colonne "B" qui est emplie de "10" et lorsque cela passe à "12" c'est à partir de là que je dois effacer.
J'aurai besoin du nombre de ligne qui resteront APRES cette opération afin de faire une boucle pour calculer les prix de vente dans une nouvelle colonne.

Merci de votre aide.
0