Bonjour

J'ai créé une macro avec la méthode "pas à pas" qui permet de sélectionner la colonne contenant le libellé "Origine" et de rechercher dans celle ci le champ nommé "Longueur" et
de remplacer toutes les valeurs de cette ligne la virgule par un point.
Et de faire de même pour la ligne qui contient le libellé "Largeur".
Tout fonctionne très bien, mais certaines fois ces libellés ne sont pas présents dans cette colonne et bien évidemment ma macro bug.
J'ai essayé sur le web avec pour mots clé " Excel macro selon valeur cellule" mais n'ai pas trouvé quelque chose répondant à ma demande.
Ma question est donc comment pouvoir sauter cette transformation si les libellés " Longueur" ou "Largeur" ne sont pas présents dans cette colonne.
J'avoue être novice dans les macros et surtout si elles font appel à des If des End If et Else.

D'avance merci pour votre aide.
Cordialement.
StSym

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub VirgulePoint()
    Application.Goto Reference:="Origine"
    ActiveCell.EntireColumn.Select
    Selection.Find(What:="Longueur", After:=ActiveCell, LookIn:= _
        xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
        xlNext, MatchCase:=False, SearchFormat:=False).Activate
    ActiveCell.EntireRow.Select
    Selection.NumberFormat = "@"
    For Each Cell In Selection
    Cell.Value = Replace(Cell.Value, ",", ".")
    Next
 
    Application.Goto Reference:="Origine"
    ActiveCell.EntireColumn.Select
    Selection.Find(What:="Largeur", After:=ActiveCell, LookIn:= _
        xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
        xlNext, MatchCase:=False, SearchFormat:=False).Activate
    ActiveCell.EntireRow.Select
    Selection.NumberFormat = "@"
    For Each Cell In Selection
    Cell.Value = Replace(Cell.Value, ",", ".")
    Next
 
End sub