Modulo "Pair" ...espace

  • Initiateur de la discussion Initiateur de la discussion Temjeh
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
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
 
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...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
1 K
Retour