Modulo "Pair" ...espace

T

Temjeh

Guest
Bonjour le forum
Merci à tous pour votre aide

J'aimerais savoir le code à mettre dans selection change

Dans la colonne B j'ai des adresses soit pair soit impair
J'aimerais si possible qu'il mettre une espace au début au nom de la rue qui est en colonne D si pair

Si adresse en B1 = 1234 met une espace avant au nom de la rue en D1
Si adresse en B12 = 2222 met une espace avant au nom de la rue en D12

Merci beaucoup

Temjeh
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonsoir Temjeh, bonsoir le forum,

Si j'ai bien compris ton problème, la macro ci-dessous devrait le résoudre :


Sub Macro1()
Dim cel As Range 'déclare la variable Cel

'boucle sur toutes les cellules éditées Cel de la colonne B
For Each cel In Range('B1:B' & Range('B65536').End(xlUp).Row)

On Error GoTo suite 'si la valeur de la cellule n'est pas numérique 'va à la balise 'suite'

'condition : si la valeur de la cellule est pair, rajoute un espace en colonne D
If cel.Value Mod 2 = 0 Then cel.Offset(0, 2).Value = ' ' & cel.Offset(0, 2).Value

suite: 'balise

Next cel 'prochaine cellule éditée Cel de la colonne B

End Sub
 
T

Temjeh

Guest
Re:Modulo

Temjeh écrit:
Merci beaucoup c'est parfait

Je vais plutot le mettre en macro car en selection change il met un espace à chaque clic ...donc 3 clic met 3 espace

Merci beaucoup

Temjeh

PS si il y a un code à mettre pour que si il y a déjà une espace passe au next sans en ajouter une autre
Merci
 

Robert

XLDnaute Barbatruc
Repose en paix
Re:Modulo

Bonsoir Temjeh, bonsoir le forum,

Essaie cela :


Sub Macro1()
Dim cel As Range 'déclare la variable Cel

'boucle sur toutes les cellules éditées Cel de la colonne B
For Each cel In Range('B1:B' & Range('B65536').End(xlUp).Row)

On Error GoTo suite 'si la valeur de la cellule n'est pas numérique 'va à la balise 'suite'

'condition : si la valeur de la cellule est pair, rajoute un espace en colonne D
If cel.Value Mod 2 = 0 And Mid(cel.Offset(0, 2), 1, 1) <> ' ' Then _
cel.Offset(0, 2).Value = ' ' & cel.Offset(0, 2).Value

suite: 'balise

Next cel 'prochaine cellule éditée Cel de la colonne B

End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re:Modulo

Bonsoir Temjeh, bonsoir le forum,

Ya des fois où je me demande pourquoi je suis si c... !

Remplace s'il te plaît Mid(cel.Offset(0, 2), 1, 1) par Left(cel.Offset(0, 2), 1). La différence est petite et les deux renvoient le premier caractère à gauche d'une chaîne. Mais le second est tellement plus logique...
 

Discussions similaires

Réponses
3
Affichages
314

Statistiques des forums

Discussions
312 381
Messages
2 087 831
Membres
103 667
dernier inscrit
datengo