Compter le nb de retour chariot

Le
Jérémy
Bonjour à tous!!

J'ai un programme qui remplace les retours chariots par des espaces
dans une feuille Excel (Voir ci-dessous)

Mais je voudrais, une fois le programme terminé, le nombre de retour
chariot trouvés dans la feuille à l'aide d'un msgbox par exemple.

Voici mon programme :
Sub retour_chariot()

Cells.Select

With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With


[A:IV].Replace What:=Chr(10), Replacement:=" "
Range("a1").Select

End Sub

Merci pour votre aide

Jérémy
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
docm
Le #4759941
Bonjour.

Sub CompterEtRemplacer()

mavaleur1 = Chr(10)
MaValeur2 = " "

Range("a1").Select

Set Plage = Cells.Find(mavaleur1)

While Not Plage Is Nothing
Plage.Select
nbreDeCellules = nbreDeCellules + 1

debut = 1
a = ActiveCell.Value
b = InStr(debut, a, mavaleur1)
While b > 0
NbreRetourChariot = NbreRetourChariot + 1
debut = b + 1
b = InStr(debut, a, mavaleur1)
Wend

ActiveCell.Replace What:=mavaleur1, Replacement:=MaValeur2, LookAt:=xlPart,
_
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse

Range("a1").Select

Set Plage = Cells.Find(mavaleur1)

Wend

msg = CDbl(NbreRetourChariot) & " retour(s) de chariot" & " dans " &
CDbl(nbreDeCellules) & " cellule(s)."

MsgBox msg

End Sub


"Jérémy"
Bonjour à tous!!

J'ai un programme qui remplace les retours chariots par des espaces
dans une feuille Excel (Voir ci-dessous)

Mais je voudrais, une fois le programme terminé, le nombre de retour
chariot trouvés dans la feuille à l'aide d'un msgbox par exemple.

Voici mon programme :
Sub retour_chariot()

Cells.Select

With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With


[A:IV].Replace What:=Chr(10), Replacement:=" "
Range("a1").Select

End Sub

Merci pour votre aide

Jérémy
JP25
Le #4759891
Bonjour, tu peux aussi essayer cette sub qui évite de balyer toute ta
feuille

Sub retour_chariot()
ActiveCell.SpecialCells(xlLastCell).Select
a = ActiveCell.Column
b = ActiveCell.Row
Set Sele = Sheets(1).Range(Cells(1, 1), Cells(b, a))
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
For Each c In Sele
If c.Value = Chr(10) Then
c.Value = " "
n = n + 1
End If
Next
Range("a1").Select
MsgBox n
End Sub
--
Cordialement
JP25




"Jérémy"
Bonjour à tous!!

J'ai un programme qui remplace les retours chariots par des espaces
dans une feuille Excel (Voir ci-dessous)

Mais je voudrais, une fois le programme terminé, le nombre de retour
chariot trouvés dans la feuille à l'aide d'un msgbox par exemple.

Voici mon programme :
Sub retour_chariot()

Cells.Select

With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With


[A:IV].Replace What:=Chr(10), Replacement:=" "
Range("a1").Select

End Sub

Merci pour votre aide

Jérémy
MichDenis
Le #4759791
Si tu écris ceci dans une cellule de la feuille, tu devrais obtenir
le nombre de cellules avec un retour à la ligne Car(10)
=NB.SI(A2:F10;"*" & CAR(10) & "*")

Si tu utilises l'objet "WorksheetFunction" de Application pour
obtenir la fonction de la feuille de calcul dans la fenêtre du code VBA

la ligne de code équivalente devrait être :
MsgBox Application.WorksheetFunction.CountA(Range("A2:F10"), "*" & Chr(10) & "*")
exécuter sur une feuille vierge, la fonction retourne 1 et non pas 0
quelqu'un a une explication ?

Pour les fins de l'expérience : (sur une feuille vierge)

Insère la formule en A1
En B1, tu insères du texte avec un retour à la ligne

La formule =1
la ligne de code = 2

Si tu ajoutes une valeur en D1 sans retour à la ligne
la formule = 1
la ligne de code = 3

Le résultat est celui attendu ?

Y-a-t-il quelqu'un sur ce forum qui a une explication ?
docm
Le #4759571
Bonjour.

Je crois que tu as mis CountA en lieu et place de CountIF

docm

"MichDenis"
Si tu écris ceci dans une cellule de la feuille, tu devrais obtenir
le nombre de cellules avec un retour à la ligne Car(10)
=NB.SI(A2:F10;"*" & CAR(10) & "*")

Si tu utilises l'objet "WorksheetFunction" de Application pour
obtenir la fonction de la feuille de calcul dans la fenêtre du code VBA

la ligne de code équivalente devrait être :
MsgBox Application.WorksheetFunction.CountA(Range("A2:F10"), "*" & Chr(10)
& "*")
exécuter sur une feuille vierge, la fonction retourne 1 et non pas 0
quelqu'un a une explication ?

Pour les fins de l'expérience : (sur une feuille vierge)

Insère la formule en A1
En B1, tu insères du texte avec un retour à la ligne

La formule =1
la ligne de code = 2

Si tu ajoutes une valeur en D1 sans retour à la ligne
la formule = 1
la ligne de code = 3

Le résultat est celui attendu ?

Y-a-t-il quelqu'un sur ce forum qui a une explication ?





MichDenis
Le #4759421
Merci Docm,

Tu as mis le doigt sur le bobo !

Il y a des jours comme ça où c'est plus difficile !

;-))



"docm" Bonjour.

Je crois que tu as mis CountA en lieu et place de CountIF

docm

"MichDenis"
Si tu écris ceci dans une cellule de la feuille, tu devrais obtenir
le nombre de cellules avec un retour à la ligne Car(10)
=NB.SI(A2:F10;"*" & CAR(10) & "*")

Si tu utilises l'objet "WorksheetFunction" de Application pour
obtenir la fonction de la feuille de calcul dans la fenêtre du code VBA

la ligne de code équivalente devrait être :
MsgBox Application.WorksheetFunction.CountA(Range("A2:F10"), "*" & Chr(10)
& "*")
exécuter sur une feuille vierge, la fonction retourne 1 et non pas 0
quelqu'un a une explication ?

Pour les fins de l'expérience : (sur une feuille vierge)

Insère la formule en A1
En B1, tu insères du texte avec un retour à la ligne

La formule =1
la ligne de code = 2

Si tu ajoutes une valeur en D1 sans retour à la ligne
la formule = 1
la ligne de code = 3

Le résultat est celui attendu ?

Y-a-t-il quelqu'un sur ce forum qui a une explication ?





Publicité
Poster une réponse
Anonyme