OVH Cloud OVH Cloud

Insertion obligatoire d'un espace en 3ème postion dans cellule..si ..

12 réponses
Avatar
Michel
bonsoir à toutes et tous

Je recherche le moyen d'insérer obligatoirement
un espasce en 3ème postion dans chaque cellules
de ma selection si
cette fameuse cellule commence obligatoirement
par NR et suivie de quelque chose. (ex : NR1234
devient NR 1234) si la
cellule commence par autre chose, rien ne se
passe.
merci de jetre un coup d'oeil à l'ébauche de code
ci-dessous et m'indiquer le gros + qui y manque
pour parvenir
à ce résultat.

Sub saisieModif()
' Macro en acces complet et verif les n° de
courrier. format xx_xxxx

Application.ScreenUpdating = False
Sheets("dossiers").Activate
Call ouvert 'enleve le mdp
ActiveSheet.ShowDataForm
Application.Goto Reference:="VERIF" ' la
zone à vérifier
Dim c As Range
selection.SpecialCells(xlCellTypeConstants,
23).Select
For Each c In selection
IF c.Value = ' je voudrai que cela
vérifie 3ème caractère' si c'est un espace c'est
bon autrement
que l'espace soit automatiquement insérer en
3ème position et le reste ne change pas"

''ci-dessous ce que j'ai essayé de tester...sans
succés. les puristes m'excuserons

If c.Value = "NR" & "????" or c.Value = "nr" &
"????" then
c.value = "NR" & "_" & "????"
End If
Next c 'cellule suivante
Call ferme 'remet le mot de passe
ActiveWorkbook.Save
Sheets("accueil").Activate 'page d'accueil
affichée
End Sub

--
Amicalement
Michel . P

10 réponses

1 2
Avatar
Nicolas B.
Salut Michel,

Ceci devrait te convenir (à mettre dans la boucle For) :
If Left(c, 2) = "NR" And Mid(c, 3, 1) <> " " Then c = _
Left(c, 2) & " " & Mid(c, 3, Len(c) - 2)


A+
--
Nicolas B.


bonsoir à toutes et tous

Je recherche le moyen d'insérer obligatoirement
un espasce en 3ème postion dans chaque cellules
de ma selection si
cette fameuse cellule commence obligatoirement
par NR et suivie de quelque chose. (ex : NR1234
devient NR 1234) si la
cellule commence par autre chose, rien ne se
passe.
merci de jetre un coup d'oeil à l'ébauche de code
ci-dessous et m'indiquer le gros + qui y manque
pour parvenir
à ce résultat.

Sub saisieModif()
' Macro en acces complet et verif les n° de
courrier. format xx_xxxx

Application.ScreenUpdating = False
Sheets("dossiers").Activate
Call ouvert 'enleve le mdp
ActiveSheet.ShowDataForm
Application.Goto Reference:="VERIF" ' la
zone à vérifier
Dim c As Range
selection.SpecialCells(xlCellTypeConstants,
23).Select
For Each c In selection
IF c.Value = ' je voudrai que cela
vérifie 3ème caractère' si c'est un espace c'est
bon autrement
que l'espace soit automatiquement insérer en
3ème position et le reste ne change pas"

''ci-dessous ce que j'ai essayé de tester...sans
succés. les puristes m'excuserons

If c.Value = "NR" & "????" or c.Value = "nr" &
"????" then
c.value = "NR" & "_" & "????"
End If
Next c 'cellule suivante
Call ferme 'remet le mot de passe
ActiveWorkbook.Save
Sheets("accueil").Activate 'page d'accueil
affichée
End Sub

--
Amicalement
Michel . P


Avatar
Michel
Il se trouve que Nicolas B. a formulé :
Salut Michel,

Ceci devrait te convenir (à mettre dans la boucle For)
: If Left(c, 2) = "NR" And Mid(c, 3, 1) <> " " Then c =
_ Left(c, 2) & " " & Mid(c, 3, Len(c) - 2)


A+
--
Nicolas B.


bonsoir à toutes et tous

Je recherche le moyen d'insérer obligatoirement
un espasce en 3ème postion dans chaque cellules
de ma selection si
cette fameuse cellule commence obligatoirement
par NR et suivie de quelque chose. (ex : NR1234
devient NR 1234) si la
cellule commence par autre chose, rien ne se
passe.
merci de jetre un coup d'oeil à l'ébauche de code
ci-dessous et m'indiquer le gros + qui y manque
pour parvenir
à ce résultat.

Sub saisieModif()
' Macro en acces complet et verif les n° de
courrier. format xx_xxxx

Application.ScreenUpdating = False
Sheets("dossiers").Activate
Call ouvert 'enleve le mdp
ActiveSheet.ShowDataForm
Application.Goto Reference:="VERIF" ' la
zone à vérifier
Dim c As Range
selection.SpecialCells(xlCellTypeConstants,
23).Select
For Each c In selection
IF c.Value = ' je voudrai que cela
vérifie 3ème caractère' si c'est un espace c'est
bon autrement
que l'espace soit automatiquement insérer en
3ème position et le reste ne change pas"

''ci-dessous ce que j'ai essayé de tester...sans
succés. les puristes m'excuserons

If c.Value = "NR" & "????" or c.Value = "nr" &
"????" then
c.value = "NR" & "_" & "????"
End If
Next c 'cellule suivante
Call ferme 'remet le mot de passe
ActiveWorkbook.Save
Sheets("accueil").Activate 'page d'accueil
affichée
End Sub

--
Amicalement
Michel . P



Merci beaucoup, je teste et essaye de comprendre
le code
et je tiens au fait des choses.. à bientôt

--
Amicalement
Michel . P


Avatar
Hervé
Salut Michel,
Peut être avec ceci ?

Sub saisieModif()
Application.ScreenUpdating = False
Sheets("dossiers").Activate
Call ouvert
ActiveSheet.ShowDataForm
Application.Goto Reference:="VERIF"
Dim c As Range
For Each c In Cells.SpecialCells(2, 23)
If Left(c.Value, 2) = "NR" Then
If Mid(c.Value, 3, 1) <> " " Then
c.Value = "NR " & _
Right(c.Value, Len(c.Value) - 2)
End If
End If
Next c
Call ferme
ActiveWorkbook.Save
Sheets("accueil").Activate
affichée
End Sub

Hervé

"Michel" a écrit dans le message
news:
bonsoir à toutes et tous

Je recherche le moyen d'insérer obligatoirement
un espasce en 3ème postion dans chaque cellules
de ma selection si
cette fameuse cellule commence obligatoirement
par NR et suivie de quelque chose. (ex : NR1234
devient NR 1234) si la
cellule commence par autre chose, rien ne se
passe.
merci de jetre un coup d'oeil à l'ébauche de code
ci-dessous et m'indiquer le gros + qui y manque
pour parvenir
à ce résultat.

Sub saisieModif()
' Macro en acces complet et verif les n° de
courrier. format xx_xxxx

Application.ScreenUpdating = False
Sheets("dossiers").Activate
Call ouvert 'enleve le mdp
ActiveSheet.ShowDataForm
Application.Goto Reference:="VERIF" ' la
zone à vérifier
Dim c As Range
selection.SpecialCells(xlCellTypeConstants,
23).Select
For Each c In selection
IF c.Value = ' je voudrai que cela
vérifie 3ème caractère' si c'est un espace c'est
bon autrement
que l'espace soit automatiquement insérer en
3ème position et le reste ne change pas"

''ci-dessous ce que j'ai essayé de tester...sans
succés. les puristes m'excuserons

If c.Value = "NR" & "????" or c.Value = "nr" &
"????" then
c.value = "NR" & "_" & "????"
End If
Next c 'cellule suivante
Call ferme 'remet le mot de passe
ActiveWorkbook.Save
Sheets("accueil").Activate 'page d'accueil
affichée
End Sub

--
Amicalement
Michel . P



Avatar
Michel
Nicolas B. a formulé ce jeudi :
Salut Michel,

Ceci devrait te convenir (à mettre dans la boucle For)
: If Left(c, 2) = "NR" And Mid(c, 3, 1) <> " " Then c =
_ Left(c, 2) & " " & Mid(c, 3, Len(c) - 2)


A+
--
Nicolas B.


bonsoir à toutes et tous

Je recherche le moyen d'insérer obligatoirement
un espasce en 3ème postion dans chaque cellules
de ma selection si
cette fameuse cellule commence obligatoirement
par NR et suivie de quelque chose. (ex : NR1234
devient NR 1234) si la
cellule commence par autre chose, rien ne se
passe.
merci de jetre un coup d'oeil à l'ébauche de code
ci-dessous et m'indiquer le gros + qui y manque
pour parvenir
à ce résultat.

Sub saisieModif()
' Macro en acces complet et verif les n° de
courrier. format xx_xxxx

Application.ScreenUpdating = False
Sheets("dossiers").Activate
Call ouvert 'enleve le mdp
ActiveSheet.ShowDataForm
Application.Goto Reference:="VERIF" ' la
zone à vérifier
Dim c As Range
selection.SpecialCells(xlCellTypeConstants,
23).Select
For Each c In selection
IF c.Value = ' je voudrai que cela
vérifie 3ème caractère' si c'est un espace c'est
bon autrement
que l'espace soit automatiquement insérer en
3ème position et le reste ne change pas"

''ci-dessous ce que j'ai essayé de tester...sans
succés. les puristes m'excuserons

If c.Value = "NR" & "????" or c.Value = "nr" &
"????" then
c.value = "NR" & "_" & "????"
End If
Next c 'cellule suivante
Call ferme 'remet le mot de passe
ActiveWorkbook.Save
Sheets("accueil").Activate 'page d'accueil
affichée
End Sub

--
Amicalement
Michel . P



Merci Nicolas
je ne comprends (encore) pas tout, mais cela
fonctionne à merveille..
bonne soirée

--
Amicalement
Michel . P


Avatar
Michel
Salut Michel,
Peut être avec ceci ?

Sub saisieModif()
Application.ScreenUpdating = False
Sheets("dossiers").Activate
Call ouvert
ActiveSheet.ShowDataForm
Application.Goto Reference:="VERIF"
Dim c As Range
For Each c In Cells.SpecialCells(2, 23)
If Left(c.Value, 2) = "NR" Then
If Mid(c.Value, 3, 1) <> " " Then
c.Value = "NR " & _
Right(c.Value, Len(c.Value) - 2)
End If
End If
Next c
Call ferme
ActiveWorkbook.Save
Sheets("accueil").Activate
affichée
End Sub

Hervé

"Michel" a écrit
dans le message news:

bonsoir à toutes et tous

Je recherche le moyen d'insérer obligatoirement
un espasce en 3ème postion dans chaque cellules
de ma selection si
cette fameuse cellule commence obligatoirement
par NR et suivie de quelque chose. (ex : NR1234
devient NR 1234) si la
cellule commence par autre chose, rien ne se
passe.
merci de jetre un coup d'oeil à l'ébauche de code
ci-dessous et m'indiquer le gros + qui y manque
pour parvenir
à ce résultat.

Sub saisieModif()
' Macro en acces complet et verif les n° de
courrier. format xx_xxxx

Application.ScreenUpdating = False
Sheets("dossiers").Activate
Call ouvert 'enleve le mdp
ActiveSheet.ShowDataForm
Application.Goto Reference:="VERIF" ' la
zone à vérifier
Dim c As Range
selection.SpecialCells(xlCellTypeConstants,
23).Select
For Each c In selection
IF c.Value = ' je voudrai que cela
vérifie 3ème caractère' si c'est un espace c'est
bon autrement
que l'espace soit automatiquement insérer en
3ème position et le reste ne change pas"

''ci-dessous ce que j'ai essayé de tester...sans
succés. les puristes m'excuserons

If c.Value = "NR" & "????" or c.Value = "nr" &
"????" then
c.value = "NR" & "_" & "????"
End If
Next c 'cellule suivante
Call ferme 'remet le mot de passe
ActiveWorkbook.Save
Sheets("accueil").Activate 'page d'accueil
affichée
End Sub

--
Amicalement
Michel . P



Merci Hervé, je teste aussi ta solution qui
m'apporte en plus de pouvoir passer en majuscule
les 2 premier caractères
si je lis bien en forçant NR quand je trouve nr.
je te tiens au fait des choses également

--
Amicalement
Michel . P


Avatar
Michel
Hervé a utilisé son clavier pour écrire :
Salut Michel,
Peut être avec ceci ?

Sub saisieModif()
Application.ScreenUpdating = False
Sheets("dossiers").Activate
Call ouvert
ActiveSheet.ShowDataForm
Application.Goto Reference:="VERIF"
Dim c As Range
For Each c In Cells.SpecialCells(2, 23)
If Left(c.Value, 2) = "NR" Then
If Mid(c.Value, 3, 1) <> " " Then
c.Value = "NR " & _
Right(c.Value, Len(c.Value) - 2)
End If
End If
Next c
Call ferme
ActiveWorkbook.Save
Sheets("accueil").Activate
affichée
End Sub

Hervé

"Michel" a écrit
dans le message news:

bonsoir à toutes et tous

Je recherche le moyen d'insérer obligatoirement
un espasce en 3ème postion dans chaque cellules
de ma selection si
cette fameuse cellule commence obligatoirement
par NR et suivie de quelque chose. (ex : NR1234
devient NR 1234) si la
cellule commence par autre chose, rien ne se
passe.
merci de jetre un coup d'oeil à l'ébauche de code
ci-dessous et m'indiquer le gros + qui y manque
pour parvenir
à ce résultat.

Sub saisieModif()
' Macro en acces complet et verif les n° de
courrier. format xx_xxxx

Application.ScreenUpdating = False
Sheets("dossiers").Activate
Call ouvert 'enleve le mdp
ActiveSheet.ShowDataForm
Application.Goto Reference:="VERIF" ' la
zone à vérifier
Dim c As Range
selection.SpecialCells(xlCellTypeConstants,
23).Select
For Each c In selection
IF c.Value = ' je voudrai que cela
vérifie 3ème caractère' si c'est un espace c'est
bon autrement
que l'espace soit automatiquement insérer en
3ème position et le reste ne change pas"

''ci-dessous ce que j'ai essayé de tester...sans
succés. les puristes m'excuserons

If c.Value = "NR" & "????" or c.Value = "nr" &
"????" then
c.value = "NR" & "_" & "????"
End If
Next c 'cellule suivante
Call ferme 'remet le mot de passe
ActiveWorkbook.Save
Sheets("accueil").Activate 'page d'accueil
affichée
End Sub

--
Amicalement
Michel . P



Y'a un petit problème, la zone VERIF est bien
selectionnée mais la vérification démarre de la
deuxiéme colonne en B1 puis B3
pui B5 puis me trouve une cellule en U12 où il y
du texte. je ne comprends pas
.....

--
Amicalement
Michel . P


Avatar
Frédéric Sigonneau
Bonjour,

Une autre approche possible :

Sub saisieModif()
' Macro en acces complet et verif les n° de courrier. format xx_xxxx
Dim cell As Range

Application.ScreenUpdating = False
Sheets("dossiers").Activate
Call ouvert 'enleve le mdp
ActiveSheet.ShowDataForm
'***************
For Each cell In Range("VERIF")
If LCase(Left(cell.Text, 2)) = "nr" _
And Mid(cell.Text, 3, 1) <> " " Then
cell.Value = Join(Split(cell.Text, Left(cell.Text, 2)), "NR ")
End If
Next cell
'***************
Call ferme 'remet le mot de passe
ActiveWorkbook.Save
Sheets("accueil").Activate 'page d'accueil affichée
End Sub

FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


bonsoir à toutes et tous

Je recherche le moyen d'insérer obligatoirement un espasce en 3ème
postion dans chaque cellules de ma selection si
cette fameuse cellule commence obligatoirement par NR et suivie de
quelque chose. (ex : NR1234 devient NR 1234) si la
cellule commence par autre chose, rien ne se passe.
merci de jetre un coup d'oeil à l'ébauche de code ci-dessous et
m'indiquer le gros + qui y manque pour parvenir
à ce résultat.

Sub saisieModif()
' Macro en acces complet et verif les n° de courrier. format xx_xxxx

Application.ScreenUpdating = False
Sheets("dossiers").Activate
Call ouvert 'enleve le mdp
ActiveSheet.ShowDataForm
Application.Goto Reference:="VERIF" ' la zone à vérifier
Dim c As Range
selection.SpecialCells(xlCellTypeConstants, 23).Select
For Each c In selection
IF c.Value = ' je voudrai que cela vérifie 3ème
caractère' si c'est un espace c'est bon autrement
que l'espace soit automatiquement insérer en 3ème
position et le reste ne change pas"

''ci-dessous ce que j'ai essayé de tester...sans succés. les puristes
m'excuserons

If c.Value = "NR" & "????" or c.Value = "nr" & "????" then
c.value = "NR" & "_" & "????"
End If
Next c 'cellule suivante
Call ferme 'remet le mot de passe
ActiveWorkbook.Save
Sheets("accueil").Activate 'page d'accueil affichée
End Sub



Avatar
Michel
Il se trouve que Frédéric Sigonneau a formulé :
Bonjour,

Une autre approche possible :

Sub saisieModif()
' Macro en acces complet et verif les n° de courrier.
format xx_xxxx
Dim cell As Range

Application.ScreenUpdating = False
Sheets("dossiers").Activate
Call ouvert 'enleve le mdp
ActiveSheet.ShowDataForm
'***************
For Each cell In Range("VERIF")
If LCase(Left(cell.Text, 2)) = "nr" _
And Mid(cell.Text, 3, 1) <> " " Then
cell.Value = Join(Split(cell.Text,
Left(cell.Text, 2)), "NR ")
End If
Next cell
'***************
Call ferme 'remet le mot de passe
ActiveWorkbook.Save
Sheets("accueil").Activate 'page d'accueil affichée
End Sub

FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal
!


bonsoir à toutes et tous

Je recherche le moyen d'insérer obligatoirement un
espasce en 3ème postion dans chaque cellules de ma
selection si
cette fameuse cellule commence obligatoirement par NR
et suivie de quelque chose. (ex : NR1234 devient NR
1234) si la
cellule commence par autre chose, rien ne se passe.
merci de jetre un coup d'oeil à l'ébauche de code
ci-dessous et m'indiquer le gros + qui y manque pour
parvenir
à ce résultat.

Sub saisieModif()
' Macro en acces complet et verif les n° de courrier.
format xx_xxxx

Application.ScreenUpdating = False
Sheets("dossiers").Activate
Call ouvert 'enleve le mdp
ActiveSheet.ShowDataForm
Application.Goto Reference:="VERIF" '
la zone à vérifier
Dim c As Range

selection.SpecialCells(xlCellTypeConstants,
23).Select
For Each c In selection
IF c.Value = ' je voudrai que cela
vérifie 3ème caractère' si c'est un espace c'est bon
autrement
que l'espace soit automatiquement
insérer en 3ème position et le reste ne change pas"

''ci-dessous ce que j'ai essayé de tester...sans
succés. les puristes m'excuserons

If c.Value = "NR" & "????" or c.Value = "nr"
& "????" then
c.value = "NR" & "_" & "????"
End If
Next c 'cellule suivante
Call ferme 'remet le mot de passe
ActiveWorkbook.Save
Sheets("accueil").Activate 'page d'accueil affichée
End Sub




Bonsoir et merci Frédéric pour cete nouvele
approche.
je test dés demain

--
Amicalement
Michel . P


Avatar
sabatier
dis, michel P., c'est nouveau ton truc de répondre tout en bas d'un post qui
fait 300m de profondeur ; tu recommences une seule fois ce genre
d'infraction et nous allons personnellement nous occuper de ton cas...et ne
crois surtout pas que la plupart des cas le sont...
jps
perso à FS : comment peut-on se moquer ainsi du temps précieux d'un émérite
MVP, hein?

"Michel" a écrit dans le message de
news:
Il se trouve que Frédéric Sigonneau a formulé :
Bonjour,

Une autre approche possible :

Sub saisieModif()
' Macro en acces complet et verif les n° de courrier.
format xx_xxxx
Dim cell As Range

Application.ScreenUpdating = False
Sheets("dossiers").Activate
Call ouvert 'enleve le mdp
ActiveSheet.ShowDataForm
'***************
For Each cell In Range("VERIF")
If LCase(Left(cell.Text, 2)) = "nr" _
And Mid(cell.Text, 3, 1) <> " " Then
cell.Value = Join(Split(cell.Text,
Left(cell.Text, 2)), "NR ")
End If
Next cell
'***************
Call ferme 'remet le mot de passe
ActiveWorkbook.Save
Sheets("accueil").Activate 'page d'accueil affichée
End Sub

FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal
!


bonsoir à toutes et tous

Je recherche le moyen d'insérer obligatoirement un
espasce en 3ème postion dans chaque cellules de ma
selection si
cette fameuse cellule commence obligatoirement par NR
et suivie de quelque chose. (ex : NR1234 devient NR
1234) si la
cellule commence par autre chose, rien ne se passe.
merci de jetre un coup d'oeil à l'ébauche de code
ci-dessous et m'indiquer le gros + qui y manque pour
parvenir
à ce résultat.

Sub saisieModif()
' Macro en acces complet et verif les n° de courrier.
format xx_xxxx

Application.ScreenUpdating = False
Sheets("dossiers").Activate
Call ouvert 'enleve le mdp
ActiveSheet.ShowDataForm
Application.Goto Reference:="VERIF" '
la zone à vérifier
Dim c As Range

selection.SpecialCells(xlCellTypeConstants,
23).Select
For Each c In selection
IF c.Value = ' je voudrai que cela
vérifie 3ème caractère' si c'est un espace c'est bon
autrement
que l'espace soit automatiquement
insérer en 3ème position et le reste ne change pas"

''ci-dessous ce que j'ai essayé de tester...sans
succés. les puristes m'excuserons

If c.Value = "NR" & "????" or c.Value = "nr"
& "????" then
c.value = "NR" & "_" & "????"
End If
Next c 'cellule suivante
Call ferme 'remet le mot de passe
ActiveWorkbook.Save
Sheets("accueil").Activate 'page d'accueil affichée
End Sub




Bonsoir et merci Frédéric pour cete nouvele
approche.
je test dés demain

--
Amicalement
Michel . P





Avatar
Michel
Il se trouve que Michel a formulé :
bonsoir à toutes et tous

Je recherche le moyen d'insérer obligatoirement un
espasce en 3ème postion dans chaque cellules de ma
selection si
cette fameuse cellule commence obligatoirement par NR
et suivie de quelque chose. (ex : NR1234 devient NR
1234) si la
cellule commence par autre chose, rien ne se passe.
merci de jetre un coup d'oeil à l'ébauche de code
ci-dessous et m'indiquer le gros + qui y manque pour
parvenir
à ce résultat.

Sub saisieModif()
' Macro en acces complet et verif les n° de courrier.
format xx_xxxx

Application.ScreenUpdating = False
Sheets("dossiers").Activate
Call ouvert 'enleve le mdp
ActiveSheet.ShowDataForm
Application.Goto Reference:="VERIF" ' la zone à
vérifier
Dim c As Range
selection.SpecialCells(xlCellTypeConstants,
23).Select
For Each c In selection
IF c.Value = ' je voudrai que cela vérifie
3ème caractère' si c'est un espace c'est bon autrement
que l'espace soit automatiquement insérer en 3ème
position et le reste ne change pas"

''ci-dessous ce que j'ai essayé de tester...sans
succés. les puristes m'excuserons

If c.Value = "NR" & "????" or c.Value = "nr" & "????"
then
c.value = "NR" & "_" & "????"
End If
Next c 'cellule suivante
Call ferme 'remet le mot de passe
ActiveWorkbook.Save
Sheets("accueil").Activate 'page d'accueil affichée
End Sub


Bonsoir JPS
Dis John Player Spécial (JPS)
c'est ici qu'il faut répondre ou, vu la date je
re-crée un fil ??
Mille excuses pour cette erreur de jeunesse
(merci quand même : 20 ans de moins pour mois)
Au fait, pas eu le temps de tester ta macro mais
demain si les deux de la maintenance informatique
me le pemettent, pomis je test..

bonsoir JPS

--
Amicalement
Michel . P

1 2