Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Fonction pour compter retour à la ligne

LePerSpiCace2

XLDnaute Nouveau
Bonjour,

Pour ma première , j'ai essayé de créer une fonction pour compter les retours à la ligne dans une cellule que je souhaite exploiter dans ma macro mais elle ne fonctionne pas.

Cette ligne ci-dessous fonctionne bien dans mon Sub () et me retourne la valeur correct dans mon MsgBox.

MsgBox Len(Range("p2")) - Len(Replace(Range("p2"), vbLf, ""))

J'ai essayer ces lignes afin d'obtenir le nombre de vbLf d'une cellule mais il me manque quelque chose je pense. Aussi avec (cellule As range) en paramètre pas de résultat.

Public Function Nbr_SautDeLignes(cellule As String) As Byte​
Nbr_SautDeLignes = Len(Range("cellule")) - Len(Replace(Range("cellule"), vbLf, ""))​
End Function​

Pourriez vous m'aider svp.
 

jmfmarques

XLDnaute Accro
Bonjour à tous
la fonction personnalisée proposée par pierrejean peut avantageusement être remplacée par la formule (mise en B1 pour s'appliquer à la valeur de A1) :
=NBCAR(A1)-NBCAR(SUBSTITUE(A1;CAR(10);""))
 

LePerSpiCace2

XLDnaute Nouveau
Bonjour pierrejean,

Merci fonctionne bien dans une cellule Excel

Par contre dans mon sub il me renvoi la valeur 0 avec cet essai

result = Nbr_SautDeLignes("p2")
MsgBox result

Merci pour la formule jmfmarques, mais je veux récupérer mon résultat directement une variable et pas dans une cellule.
 

LePerSpiCace2

XLDnaute Nouveau
oui celle ci-dessous aussi fonctionne bien pour mon besoin et me retourne la valeur désiré

toto = Len(Range("p2")) - Len(Replace(Range("p2"), vbLf, ""))

mon but est aussi de réussir à créer des fonctions je me suis dis que pour une première ce serait pas mal mais il me manque quelque chose que j'arrive pas encore à capter
 
Dernière édition:

LePerSpiCace2

XLDnaute Nouveau
Merci job75, j'ai trouvé la soluce aussi, à force de recherche et test je crois maintenant avoir saisi l'utilisation du paramètre tu confirme bien ce que j'ai trouvé aussi

MsgBox Nbr_SautDeLignes(Range("P2"))

Merci beaucoup Messieurs pour votre aide
 

Discussions similaires

Réponses
4
Affichages
454
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…