Prendre en compte les mots quelle que soit la casse
Résolu/Fermé
Nai
Messages postés
706
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
2 octobre 2024
-
Modifié par Nai le 14/10/2014 à 22:00
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 15 oct. 2014 à 13:58
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 15 oct. 2014 à 13:58
A voir également:
- Prendre en compte les mots quelle que soit la casse
- Créer un compte gmail - Guide
- Supprimer compte instagram - Guide
- Créer un compte google - Guide
- Créer un compte instagram sur google - Guide
- Gmail connexion autre compte - Guide
2 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 750
15 oct. 2014 à 08:32
15 oct. 2014 à 08:32
Bonjour,
Peut être simplement en ajoutant UCase().
Ta procédure TextBox1_Change :
Devient :
Peut être simplement en ajoutant UCase().
Ta procédure TextBox1_Change :
Private Sub TextBox1_Change() 'sources : 'http://www.commentcamarche.net/forum/affich-14847865-recherche-semi-auto-dans-excel 'michel_m Application.ScreenUpdating = False 'ne pas afficher le déroulé de la macro' Dim lettre As String, cptr As Long, cptr_tablo As Long, derlig As Long, i As Long Dim Tb() lettre = UCase(TextBox1.Value) If lettre = "" Then Exit Sub For cptr = 1 To UBound(Sources, 1) If Sources(cptr, 1) Like lettre & "*" Then ' <== Ligne à modifier ReDim Preserve Tb(cptr_tablo) Tb(cptr_tablo) = Sources(cptr, 1) & " - " & Sources(cptr, 2) & " - " & Sources(cptr, 3) cptr_tablo = cptr_tablo + 1 End If Next If cptr_tablo = 0 Then MsgBox "Aucun Nom commençant par : " & lettre: Exit Sub With ListBox1 .Clear For i = LBound(Tb) To UBound(Tb) .AddItem Tb(i) Next .Visible = True End With Application.ScreenUpdating = True 'afficher le résultat final' End Sub
Devient :
Private Sub TextBox1_Change() 'sources : 'http://www.commentcamarche.net/forum/affich-14847865-recherche-semi-auto-dans-excel 'michel_m Application.ScreenUpdating = False 'ne pas afficher le déroulé de la macro' Dim lettre As String, cptr As Long, cptr_tablo As Long, derlig As Long, i As Long Dim Tb() lettre = UCase(TextBox1.Value) If lettre = "" Then Exit Sub For cptr = 1 To UBound(Sources, 1) If UCase(Sources(cptr, 1)) Like lettre & "*" Then '<== utilisation de UCase ReDim Preserve Tb(cptr_tablo) Tb(cptr_tablo) = Sources(cptr, 1) & " - " & Sources(cptr, 2) & " - " & Sources(cptr, 3) cptr_tablo = cptr_tablo + 1 End If Next If cptr_tablo = 0 Then MsgBox "Aucun Nom commençant par : " & lettre: Exit Sub With ListBox1 .Clear For i = LBound(Tb) To UBound(Tb) .AddItem Tb(i) Next .Visible = True End With Application.ScreenUpdating = True 'afficher le résultat final' End Sub
Nai
Messages postés
706
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
2 octobre 2024
54
15 oct. 2014 à 11:06
15 oct. 2014 à 11:06
Merci !
Ça fonctionne ! U = Upper, c'est ça ?
Ça fonctionne ! U = Upper, c'est ça ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 750
15 oct. 2014 à 11:08
15 oct. 2014 à 11:08
Yes!
Même chose pour les minuscules : L = Lower ==> LCase()
Même chose pour les minuscules : L = Lower ==> LCase()
Nai
Messages postés
706
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
2 octobre 2024
54
15 oct. 2014 à 11:38
15 oct. 2014 à 11:38
Est-ce que, dans la suite de la macro, il est possible de modifier la colonne A en majuscule, après le clic du coup ?
Puisque ce sont des NOM, je voudrais qu'ils soient affichés en majuscule.
Puisque ce sont des NOM, je voudrais qu'ils soient affichés en majuscule.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 750
15 oct. 2014 à 12:35
15 oct. 2014 à 12:35
Ben ça tu peux le faire en dehors d'une macro...
Tu te met dans une colonne vide de ton fichier même page,
En colonne Z par exemple,
en Z1 tu écris la formule : =MAJUSCULE(A1)
Formule que tu "étires" vers le bas.
Puis, copier / collage spécial choix valeurs de la colonne Z en colonne A...
En trois minutes tu n'as que des NOMS
Tu te met dans une colonne vide de ton fichier même page,
En colonne Z par exemple,
en Z1 tu écris la formule : =MAJUSCULE(A1)
Formule que tu "étires" vers le bas.
Puis, copier / collage spécial choix valeurs de la colonne Z en colonne A...
En trois minutes tu n'as que des NOMS
Nai
Messages postés
706
Date d'inscription
vendredi 29 avril 2005
Statut
Membre
Dernière intervention
2 octobre 2024
54
15 oct. 2014 à 13:08
15 oct. 2014 à 13:08
J'avais déjà fait ça, mais ça ne fonctionne pas.
Les fichiers concernés sont les mêmes qu'ici : https://forums.commentcamarche.net/forum/affich-30645995-completer-lignes-depuis-autre-classeur-base-de-donnees#28
Les fichiers concernés sont les mêmes qu'ici : https://forums.commentcamarche.net/forum/affich-30645995-completer-lignes-depuis-autre-classeur-base-de-donnees#28
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 750
15 oct. 2014 à 13:58
15 oct. 2014 à 13:58
J'avais déjà fait ça, mais ça ne fonctionne pas.
J'ai testé cela fonctionne...
Bon. Par macro, il va falloir modifier le fichier bdd.xlsx qui devient bdd.xlsm
Donc :
MODIFIER ce nom dans les macros du second fichier.
Puis, dans le fichier bdd.xlsm, ajouter cette macro dans le module ThisWorkbook
J'ai testé cela fonctionne...
Bon. Par macro, il va falloir modifier le fichier bdd.xlsx qui devient bdd.xlsm
Donc :
MODIFIER ce nom dans les macros du second fichier.
Puis, dans le fichier bdd.xlsm, ajouter cette macro dans le module ThisWorkbook
Private Sub Workbook_Open() Dim lig As Long, dl As Long With Sheets("Feuil1") dl = .Range("A" & Rows.Count).End(xlUp).Row For lig = 2 To dl .Cells(lig, 1) = UCase(.Cells(lig, 1)) Next End With End Sub