Bonjour! Voici une question épineuse ...
Au sein d'une macro, j'ai besoin de rechercher une chaîne de caractère parmi une longue liste de chaînes qui sont en colonne dans le classeur.
Par exemple, j'ai en colonne A tous les prénoms de mes collègues (1000 noms) et je cherche la ligne où apparait Robert.
Me souvenant de mes vieux cours d'info, je me tente un "diviser pour régner" :
1) Je trie la colonne A par ordre croissant
2) Je regarde à la moitié, ligne 500. Je tombe sur Laurent
3) Robert > Laurent dans l'ordre alphabétique donc je recommence en me concentrant sur les lignes 501 à 1000, ceci avec une fonction par récurrence.
Problème, une comparaison "If string1 > string2 ..." ne donne pas le même ordre que le tri "Selection.Sort" dans quelques cas particuliers.
Si je trie par ordre croissant:
Oi
Oa
O-Z
J'obtiens
Oa
Oi
O-Z
Pourtant, si string1="Oa" et string2="O-Z" alors string1 > string2.
En fait, la règle de tri par ordre alphabétique n'est pas cohérente entre les deux méthodes et de ce fait, ma méthode de recherche échoue pour toutes les chaînes incorporant des tirets (et je suppose que je vais découvrir d'autres exceptions).
Alors, que faire ?

 

 
		
		 
         
 

 
			
			

 
   


 sens de string1 > string2 en vba, cohérence avec le tri excel
 sens de string1 > string2 en vba, cohérence avec le tri excel
				 Répondre avec citation
  Répondre avec citation

 
  
  
 
 
 
 
			 
 
 
				
 tu as la fonction
 tu as la fonction  , je me dis que ça n'en vaut pas la peine vu les complications et que je ferais mieux de m'en tenir à un EQUIV dans le classeur !
, je me dis que ça n'en vaut pas la peine vu les complications et que je ferais mieux de m'en tenir à un EQUIV dans le classeur ! 
			 
			 Envoyé par gxrald
 Envoyé par gxrald
					
 
			
Partager