Trouver des même mot et afficher dans TextBox

Résolu
New_VBA_User Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   -  
New_VBA_User Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour

J’enregistres des donnés dans une feuille Excel, j’aimerai compter le même mot et afficher la somme des même mot est trouvé dans la cellule. Dans les textbox

Par ex. je dois trouver le mot PC, toto, winXP….


Les critère se trouve dans des colonnes séparer

Ex. " PC " dans la colonne D

" toto", "WinXp" » dans colonne F

J’ai dois trouvé une dizaine de critère et afficher dans les textbox.


J’ai des text box

TextBox_PC

TextBox_toto

TextBox_winXP

….

Merci de l’aide



Configuration: Windows / Edge 18.17763

1 réponse

Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention   149
 
Bonjour,

Si tu devais le faire par formule, la fonction NB.SI serait toute indiquée.
En VBA tu peux utiliser Application.WorksheetFunction pour y faire appel. Fais un enregistrement de macro pour obtenir la syntaxe.

A+
0
New_VBA_User Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   1
 
salut,

j'ai fais comme ça

TextBox1.Value = Application.WorksheetFunction.CountIfs(Range("AE:AE"), "PC") 


ça marche bien.

je voulais savoir si c'était possible d'utiliser les control de textbox, au lieu de taper 20 ligne de codes .

merci.
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > New_VBA_User Messages postés 82 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour, il te faut d'abord trouver une méthode pour connaitre les noms des textboxes, et les textes à chercher.
0
Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention   149
 
Re,

Si tu renommes tes textbox suivant le texte à chercher, tu peux tenter une astuce comme :
Private Sub UserForm_Initialize()
    For Each t In UserForm1.Controls
        t.Value = Application.WorksheetFunction.CountIfs(Range("AE:AE"), t.Name)
    Next t
End Sub

Après, il faut gérer les autres contrôles s'il y en a...

A+
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Zoul67 Messages postés 1959 Date d'inscription   Statut Membre Dernière intervention  
 
il est possible aussi de ne faire cela que pour les TextBoxes.
0
New_VBA_User Messages postés 82 Date d'inscription   Statut Membre Dernière intervention   1
 
merci de l'aide, comme je ne maitrise pas trop les controls, alors je vais rester sur la solution n° 2, qui marche bien.
0