Bonjour à tous,
A mon avis, suivant les méthodes utilisées :
- ce n'est pas la valeur 0 qui présente une difficulté mais la valeur string de longueur 0. Comment obtient-on ce string de longueur 0 ? Bien souvent en copiant vers une autre plage une plage où se trouvent des formules renvoyant une chaine ""
- des colonnes masquées peuvent également perturber le résultat
- des valeurs d'erreurs au sein de la ligne peuvent aussi perturber le résultat
Le code suivant doit pallier ces inconvénients (j'ai considéré les cellules avec la chaine vide comme étant vides). J'ai fait quelques contrôles mais peut-être pas suffisamment.
Principe du code :
Dim der10&
Columns.Hidden = False
On Error Resume Next
der10 = Rows(10).Find(what:="*", after:=Rows(10).Cells(1, 1), LookIn:=xlValues, lookat:=xlPart, SearchDirection:=xlPrevious).Column
On Error GoTo 0
nota : si la ligne est vide (et / ou avec des string nuls), alors le numéro de la dernière colonne est zéro.
Dans le classeur joint, cliquez sur le bouton Test1 pour voir une application du principe pour les lignes 10 à 12. Le code est dans le module de la feuille "Feuil1".