Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1382 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [RESOLU]Compter le nombre de mot...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU]Compter le nombre de mot...

n°1202513
deejoh
Posté le 19-09-2005 à 15:37:42  profilanswer
 

Salut à tous,
 
voilà mon problème :
Sous excel
J'ai une colonne d'environ 15000 lignes
Dans chaque cellule il y a soit "entré" soit "stock" j'aimerai savoir comment je peux obtenir le nombre d'"entré" sous VBA ??
 
Merci :)


Message édité par deejoh le 23-09-2005 à 10:55:38
mood
Publicité
Posté le 19-09-2005 à 15:37:42  profilanswer
 

n°1202551
olivthill
Posté le 19-09-2005 à 16:07:08  profilanswer
 

Par exemple :

Public Sub compter_mots2(mot_a_compter As String)
    Application.ScreenUpdating = False   ' pour aller plus vite
    Set ma_feuille = ThisWorkbook.Sheets("Feuil1" )
    col_no = 1 ' pour la colonne A (A = 1)
    lg_no = 1  ' à partir de la première ligne
    compteur_mots = 0
    Do While Not IsEmpty(ma_feuille.Cells(lg_no, col_no))
        If (ma_feuille.Cells(lg_no, col_no).Value = mot_a_compter) Then
            compteur_mots = compteur_mots + 1
        End If
        lg_no = lg_no + 1
    Loop
    MsgBox ("Il y a " & compteur_mots & " cellule(s) contenant " & mot_a_compter)
End Sub
 
 
Sub compter_mots()
  Call compter_mots2("toto" )
End Sub

:)

n°1202596
galopin01
Posté le 19-09-2005 à 16:34:51  profilanswer
 

bonjour,
Pour la colonne A :
 
Sub Test()
MsgBox Application.WorksheetFunction.CountIf(Range("A1:A15000" ), "entré" )
End Sub


---------------
roger
n°1202990
deejoh
Posté le 20-09-2005 à 10:07:29  profilanswer
 

Merci pour vos réponses :)
 
J'ai une autre question pour vous.
Aprés avoir obtenu le nombre d'"entrée" il me faut obtenir le nombre associé à cette "entrée" en fonction d'une spécialité...
 
Voici un schéma pour mieux comprendre :
 
A                      B                              C
Entrée/Sortie      Type                        Montant
                                                                                   
Entrée               Entreprise                   920
Stock                Particulier                   10002
Stock                Autre                         1890
Entrée               Specialité                    1500
Entrée               Entreprise                    17899
 
En fait je cherche à obtenir la somme des montants en fonction des entrées/sortie et du type . Par exemple la somme des montants des entrées  
entreprise.
 
Merci :)
 

n°1203075
deejoh
Posté le 20-09-2005 à 11:14:47  profilanswer
 

Si ça peut vous aider les colones Types et Entrées sont Filtrées.
Je devrai pouvoir utiliser les filtres sous excel non ?

n°1203136
watashi
La démotivation : JAMAIS !
Posté le 20-09-2005 à 11:43:14  profilanswer
 

salut deejoh,
Je pense qu'il faudrait également que tu définisse la manière dont tu veux ressortir ces informations car les sollution sont différentes...
 
Soit tu veux un tableau récapitulatif qui se mette à jour , soit tu veux une interrogation ponctuelle sur un point bien précis qui apparaisse dans une msgbox, soit tu as juste besoin qu'excel sache récupérer les valeur pour un autre traitement...
 
Les filtres ne te donneront pas les totaux par type, par contre en base dans excel tu as les sous-totaux si tes collones sont trièes....
 
bon courage

n°1203211
deejoh
Posté le 20-09-2005 à 12:45:38  profilanswer
 

Eh bien il me faudrait plutot un tableau récapitulatif...

n°1203252
watashi
La démotivation : JAMAIS !
Posté le 20-09-2005 à 13:28:59  profilanswer
 

ben déjà ça change pas mal de problèmes :) Et ça te permet d'envisager plusieurs sollutions en fonction de la forme que tu veux obtenir.
 
As-tu essayer les tableaux croisés dynamiques ?
(Dans excel : menu Données\Raport de tableau croisés dynamique)
Tu obtiens comme un onglet supplémentaire avec dessus ton répaitulatif que tu organises à souhait. Tu peux lui faire addition, compter tes données. Pas besoin de programmation, juste mettre en place les champs grâce à l'assistant. Le plus simple est parfois le plus fiable.
 
Dis nous ce que tu en penses après avoir regardé ça.
Si tu veux ce récapitulatif sur la même page, il y a d'autres informations qu'il nous faudra pour t'aider.
 
:)


Message édité par watashi le 20-09-2005 à 13:31:51
n°1204608
deejoh
Posté le 21-09-2005 à 17:21:38  profilanswer
 

Bon j'ai trouvé un début de solution à l'aide des filtres automatiques
 
Donc en vba je fais l'instruction pour filtrer Entrée\sortie en fonction de sortie et Type en fonction de Entreprise...
 
Mais j'ai un message d'erreur si je met les 2 filtres...
 
 
Quelqu'un peut m'aider avec les filtres et vba ???

n°1204854
watashi
La démotivation : JAMAIS !
Posté le 22-09-2005 à 09:43:22  profilanswer
 

Salut Deejoh
 
Si tu nous donne le code que tu as déjà écrit on pourra t'aider à le corriger  
:)
 

mood
Publicité
Posté le 22-09-2005 à 09:43:22  profilanswer
 

n°1204865
deejoh
Posté le 22-09-2005 à 09:55:25  profilanswer
 

Ok voilà ce que j'ai :
je l'ai fait à l'aide de l'enregistreur de macro... (seulement 1semaine que je suis sur vba... )
 
Public Sub initSortieEntreprise()
 
    Sheets("SORTIES" ).Select
    Rows("2:2" ).Select
    Selection.AutoFilter
    Selection.AutoFilter field:=39, criterial:="SORTIES"
    Selection.AutoFilter field:=35, Criteria1:="ENTREPRISES"
    Range("A46:A65536" ).Select
    Selection.Copy
    Sheets("Temporaire" ).Select
    Range("A1" ).Select
    ActiveSheet.Paste
    Sheets("MVTS MOIS MARCHE" ).Select
    Range("C7" ) = "=SUM(Temporaire!A1:A60078)"
     
 
End Sub
 
Ca fonctionne trés bien si je laisse un seul paramètre de filtre mais si je met les deux ça plante ...


Message édité par deejoh le 22-09-2005 à 09:56:39
n°1204872
deejoh
Posté le 22-09-2005 à 10:08:45  profilanswer
 

D'aprés ce que j'ai lu sur un autre forum ça passerai avec ça :
 
Worksheets(13).Cells(1,2).AutoFilter Field:=1,Criteria1:="A"  
 
mais que signifie Autofilter Field:=1 ???

n°1204982
watashi
La démotivation : JAMAIS !
Posté le 22-09-2005 à 12:43:52  profilanswer
 

re bonjour deejoh
 
pour ton code, je vois un petit problème de syntaxe la :
Selection.AutoFilter field:=39, criterial:="SORTIES"
à remplacer par  

Code :
  1. Selection.AutoFilter field:=39, criteria1:="SORTIES"


Pour éviter les soucis, rajoute ça avant de filtrer :

Code :
  1. 'Mettre en place le filtre s'il n'y en a pas
  2. 'ta ligne d'entête est bien sur la ligne 2 ? sinon modifie le 2 en fonction.
  3.     WorkSheets("SORTIES" ).Rows("2:2" ).Select
  4.     If WorkSheets("SORTIES" ).AutoFilterMode = False Then Selection.AutoFilter
  5. 'Supprime les filtrage précédents
  6.     If WorkSheets("SORTIES" )..AutoFilter.Filters(1).On Then WorkSheets("SORTIES" ).ShowAllData
  7.     Range("A2" ).Select
  8. 'Filter selon tes critères


ça devrait marcher, j'ai plus simple en tête, je te le propose après le repas.
Field : défini le numéro de la colone sur laquelle tu tri. (chez toi à priori en colone 39 tu as tes ENTREES/SORTIES)
@+ Wata
 
P.S.S : si ça ne marche pas dis moi sur quelle ligne ça bloque et quel est le message d'erreur :)


Message édité par watashi le 22-09-2005 à 12:48:12
n°1205098
watashi
La démotivation : JAMAIS !
Posté le 22-09-2005 à 14:40:05  profilanswer
 

re deejoh,
 
voilà un moyen en VBA de faire ta sommme sur les 2 conditions et de mettre le total dans ta cellule C7.

Code :
  1. Sub Calcultotaux()
  2. 'Tes Variables
  3. Dim i As Integer, SomVal
  4. Dim S As Worksheet, M As Worksheet
  5. Dim Critere1, Critere2
  6. 'Initialisation des variables
  7. i = 2               'N° de ta ligne de titre
  8. SomVal = 0
  9. Critere1 = "SORTIES"         'Ton critere present en colone 39
  10. Critere2 = "ENTREPRISES"   'Ton critere présent en colone 35
  11. Set S = Worksheets("SORTIES" )     'Ta feille de données
  12. Set M = Worksheets("MVTS MOIS MARCHE" )  'Ta feuille de récapitulatif
  13. 'Calculer ta somme et la stocker dans la variable SomVal
  14. S.Select
  15. Do
  16.      i = i + 1
  17.      MsgBox (Cells(i, 39).Text & vbCrLf & (Cells(i, 35).Text))
  18. 'Tes conditions "emoîtées" 
  19.      If Cells(i, 39).Text = Critere1 Then
  20.           If Cells(i, 35).Text = Critere2 Then
  21.                SomVal = SomVal + Cells(i, 1).Value
  22.           End If
  23.      End If
  24. Loop Until Cells(i + 1, 1) = ""
  25. 'Copier ton résultat dans la cellule
  26. M.Select
  27. Range("C7" ).Select
  28. ActiveCell.Formula = SomVal
  29. End Sub


Voilà donnes nous ton avis.


Message édité par watashi le 22-09-2005 à 14:44:16

---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1205176
deejoh
Posté le 22-09-2005 à 15:22:58  profilanswer
 

MErci beaucoup :)
Je regarde et je t'en parle au plus vite ;)

n°1205747
deejoh
Posté le 23-09-2005 à 10:26:19  profilanswer
 

ça marche niquel merci beaucoup :)

n°1205761
watashi
La démotivation : JAMAIS !
Posté le 23-09-2005 à 10:40:28  profilanswer
 

Cool !  :bounce:  
 
Edites le nom de ton post avec résolu, ça en aidera d'autres ;)
 
bon courage pour la suite :)


Message édité par watashi le 23-09-2005 à 10:44:27

---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [RESOLU]Compter le nombre de mot...

 

Sujets relatifs
Probleme de requete et de texte en php [Résolu, euh en fait non][résolu] redirection vers une page autre site
(résolu) [C] interfacer SQL avec du C[Windows NT][Résolu]Récupérer le séparateur de listes
[php]$_POST dynamique[resolu][résolu] recherche dans l'arboresence
[RESOLU] Problème avec XmlHttpRequest : marche pas sous IE[RESOLU] [eclipse 3.1] export/import préférences
a:hover pas appliqué sur l'ensemble de la page[RESOLU]affichage d'une applet [resolu]
Plus de sujets relatifs à : [RESOLU]Compter le nombre de mot...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR