Microsoft 365 Code VBA

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous :)

Je n'arrive pas à faire fonctionner mon code.
Le contexte :
Condition 1
- Texte en...B5 : "Outre Mer Et excel-download"
- N° tel en.E5 : 33111111111
La condition est la suivante : si E5 <33999999999 : en B5 = "Et excel-download" ("Outre Mer " doit être supprimé)
Condition 2
- Texte en.. B5 : "Et excel-download"
- N° tel en.E5 : 262111111111 (par exemple)
La condition est la suivante : si E5 >33999999999 : en B5 = "Outre Mer Et excel-download" ("Outre Mer " doit être ajouté)
La condition 2 fonctionne bien et ne pose pas de problème :)

Ce n'est pas le cas de la Condition 1 et malgré mes tentatives, je n'y arrive pas !
Mes 4 codes différents ne fonctionnent pas Grrrrr !!! :mad::rolleyes:
VB:
Sub OutreMer1()
[e5].Select
If ActiveCell > 33999999999# Then
    ActiveCell.Offset(0, -3) = "Outre Mer " & ActiveCell.Offset(0, -3).Value
    Else
    ActiveCell.Offset(0, -3).Value = "=MID(RC[-3],10,LEN(ActiveCell.Offset(0, -3)))"
    End If
    [A5].Select
End Sub
Sub OutreMer2()
[e8].Select
If ActiveCell > 33999999999# Then
    ActiveCell.Offset(0, -3) = "Outre Mer " & ActiveCell.Offset(0, -3).Value
    Else
    ActiveCell.Offset(0, -3).Value = "=MID(ActiveCell.Offset(0, -3),11,300)"
    End If
    [A8].Select
End Sub
Sub OutreMer3()
[e11].Select
If ActiveCell > 33999999999# Then
    ActiveCell.Offset(0, -3) = "Outre Mer " & ActiveCell.Offset(0, -3).Value
    Else
    ActiveCell.Offset(0, -3).Value = "=RIGHT(RC[-3],LEN(RC[-3])-10)"
    End If
    [A11].Select
End Sub
Sub OutreMer4()
[e14].Select
If ActiveCell > 33999999999# Then
    ActiveCell.Offset(0, -3) = "Outre Mer " & ActiveCell.Offset(0, -3).Value
    Else
    ActiveCell.Offset(0, -3).Value = "=REPLACE(ActiveCell.Offset(0, -3),1,10,"""")"
    'ActiveCell.Offset(0, -3).Value = "=REPLACE(RC[-3],1,10,"""")"
    End If
    [A14].Select
End Sub
Auriez-vous le bon code pour la condition 1 ?
Je joins mlon fichier test.
Un grand merci.
Entre temps, je continue recherches et tests...
Lionel :)
 

Pièces jointes

  • Outre Mer.xlsm
    34.3 KB · Affichages: 6
Solution
Bonjour Lionel, fanch55, le forum,

ActiveCell.Offset(0, -3).Value = Mid(ActiveCell.Offset(0, -3), 11) ne va pas du tout quand on exécute 2 fois de suite la macro avec le même n° 33111111111.

Utilisez plutôt :
VB:
Sub OutreMer1()
With [B5]
    .Value = IIf(.Offset(, 3) > 33999999999#, "Outre Mer ", "") & Replace(.Value, "Outre Mer ", "")
End With
End Sub
A+

job75

XLDnaute Barbatruc
Bonjour Lionel, fanch55, le forum,

ActiveCell.Offset(0, -3).Value = Mid(ActiveCell.Offset(0, -3), 11) ne va pas du tout quand on exécute 2 fois de suite la macro avec le même n° 33111111111.

Utilisez plutôt :
VB:
Sub OutreMer1()
With [B5]
    .Value = IIf(.Offset(, 3) > 33999999999#, "Outre Mer ", "") & Replace(.Value, "Outre Mer ", "")
End With
End Sub
A+
 

Pièces jointes

  • Outre Mer(1).xlsm
    29.3 KB · Affichages: 2

Usine à gaz

XLDnaute Barbatruc
Re :)
Sub OutreMer1()
With ActiveCell.Offset(, -3)
.Value = IIf(ActiveCell > 33999999999#, "Outre Mer ", "") & Replace(.Value, "Outre Mer ", "")
End With
End Sub
Fonctionne nickel de chez nickel.
"Outre Mer " s'affiche et s'enlève à gauche dans la cellule.
On pourrait le faire à droite en bout de texte " Outre Mer" ?
Cela me laisserait la possibilité de la mettre dans la cellule de mon Prospect sans altérer le classement alphabétique.
Je cherche de mon côté,
Encore merci ...
lionel :)
 

job75

XLDnaute Barbatruc
Tu aurais pu le faire tout seul je pense :
VB:
Sub OutreMer1()
With [B5]
    .Value = Replace(.Value, " Outre Mer", "") & IIf(.Offset(, 3) > 33999999999#, " Outre Mer", "")
End With
End Sub
 

Pièces jointes

  • Outre Mer(2).xlsm
    28.3 KB · Affichages: 2

Statistiques des forums

Discussions
315 134
Messages
2 116 614
Membres
112 811
dernier inscrit
shade1452