Compter les lignes

simkmil Messages postés 505 Date d'inscription   Statut Membre Dernière intervention   -  
simkmil Messages postés 505 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

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  2. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
    1. 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
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  4. simkmil Messages postés 505 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