OVH Cloud OVH Cloud

Merci

1 réponse
Avatar
dcq
Merci à toutes et toutes pour votre aide précieuse.
Je vais essayer tout cela et vous tiendrais au courant.
A+



De: "docm" <docmarti@spamcolba.net>
Objet: Re: Comment enlever une cellule précise d'un nom
Date: vendredi 23 juillet 2004 03:49

Bonjour Philippe.

Pour apporter un complément à ta suggestion, je propose les modifications
suivantes:

Sub enlevatoto()
'MPFE le 22/07/2004
x = ActiveWorkbook.Names("toto").RefersTo
zaza = ActiveCell.Address 'ou bien ta cellule fixe par ex : $a$1
nomfeuil = ActiveSheet.Name
lapos = Application.WorksheetFunction.Find(zaza, x)
NomFeuilleEtZaza = ActiveSheet.Name & "!" & zaza
'Supprimer la référence si elle n'est pas en fin de liste
While InStr(x, NomFeuilleEtZaza & ",") > 0
b = InStr(x, NomFeuilleEtZaza & ",")
L = Len(NomFeuilleEtZaza & ",")
x = Mid(x, 1, b - 1) & Mid(x, b + L)
Wend
'Supprimer la référence si elle est en fin de liste
If InStr(x, NomFeuilleEtZaza) > 0 Then
b = InStr(x, NomFeuilleEtZaza)
L = Len(NomFeuilleEtZaza)
If b + L - 1 = Len(x) Then
x = Mid(x, 1, b - 1) & Mid(x, b + L)
End If
End If

ActiveWorkbook.Names.Add Name:="toto", RefersTo:="" & nouvtata
End Sub

Sous toutes réserves.


"Philippe.R" <A_S_rauphil@wanadoo.fr> wrote in message
news:uTVEwPDcEHA.2816@TK2MSFTNGP11.phx.gbl...
> Bon{j,s}o{u,i}r®
>
> Je viens aussi sur cette nouvelle ficelle pour proposer :
>
> Sub enlevatata()
> 'MPFE le 22/07/2004
> x = ActiveWorkbook.Names("tata").RefersTo
> zaza = ActiveCell.Address 'ou bien ta cellule fixe par ex : $a$1
> nomfeuil = ActiveSheet.Name
> lapos = Application.WorksheetFunction.Find(zaza, x)
> If Len(x) - lapos - Len(zaza) > 0 Then
> partdroite = Right(x, Len(x) - lapos - Len(zaza))
> Else
> partdroite = ""
> End If
> nouvtata = Left(x, lapos - 3 - Len(nomfeuil)) & partdroite
> ActiveWorkbook.Names.Add Name:="tata", RefersTo:="" & nouvtata
> End Sub
>
> Amicales Salutations
> Retirer A_S_ pour répondre.
> XL 97 / 2000 / 2002
> Pour suivre facilement le forum :
> news://msnews.microsoft.com/microsoft.public.fr.excel
> (Voulez-vous vous abonner ? -> Oui)
>
> "dcq" <fauxmail_dcq125@free.fr> a écrit dans le message de
> news:41002cc3$0$14844$636a15ce@news.free.fr...
> > La plage à enlever sera toujours la même cellule, déterminée par ses
> > coordonnées par exemple A1. En revanche, le contenu du nom "TOTO", sera
> > variable, en fonction du nombre d'enregistrement de la feuille. Mais
comme
> > les ajouts se font par le haut, ce sera toujours la meme cellule, chaque
> > fois que l'on veut enlever une partie, qui sera effacée
> >
> > Merci d'avance
> >
> >
> >
> > "isabelle" <as.isabellevIE@videotron.ca> a écrit dans le message de
> > news:410002FF.552788DC@videotron.ca...
> > > il faudrait nous dire qu'est ce qui détermine la plage à enlever de la
> > > référence,
> > >
> > > isabelle
> > >
> > > dcq a écrit :
> > > >
> > > > Le probleme est que l'utilisateur ne doit pas définir les plages, je
> > veux
> > > > que cela soit fait automatiquement au sein d'une macro qui enleve
des
> > > > enregistrements.
> > > >
> > > > "isabelle" <as.isabellevIE@videotron.ca> a écrit dans le message de
> > > > news:40FFE8E2.2D8C60D3@videotron.ca...
> > > > > bonjour dcq,
> > > > >
> > > > > x = Names("zaza").RefersTo
> > > > > plage = InputBox("Modifier cette référence", Title:="Modifier",
> > > > > Default:=x)
> > > > > Names.Add Name:="zaza", RefersTo:="" & plage
> > > > >
> > > > > isabelle
> > > > >
> > > > > dcq a écrit :
> > > > > >
> > > > > > Impossible, car je ne connais pas la teneur de toto à l'instant
ou
> > je
> > > > lance
> > > > > > la macro. Je ne peux donc le faire autrement que par toto-A1. En
> > > > revahcne,
> > > > > > je sais que A1 sera dans toto.
> > > > > >
> > > > > > "AV" <alain.vallon@wanadoo.fr> a écrit dans le message de
> > > > > > news:uG79XGAcEHA.596@TK2MSFTNGP11.phx.gbl...
> > > > > > > Tu le redéfinis en "oubliant" A1 :
> > > > > > >
> > > > > > > ActiveWorkbook.Names.Add Name:="toto", RefersTo:= _
> > > > > > > "=Feuil1!$A$8,Feuil1!$A$15,Feuil1!$A$22,Feuil1!$A$29"
> > > > > > >
> > > > > > > AV
> > > > > > >
> > > > > > >
> >
> >
>
>

1 réponse

Avatar
Philippe.R
C'était avec plaisir !
--
Amicales Salutations

"dcq" a écrit dans le message de news:cdrl1f$ckl$
Merci à toutes et toutes pour votre aide précieuse.
Je vais essayer tout cela et vous tiendrais au courant.
A+



De: "docm"
Objet: Re: Comment enlever une cellule précise d'un nom
Date: vendredi 23 juillet 2004 03:49

Bonjour Philippe.

Pour apporter un complément à ta suggestion, je propose les modifications
suivantes:

Sub enlevatoto()
'MPFE le 22/07/2004
x = ActiveWorkbook.Names("toto").RefersTo
zaza = ActiveCell.Address 'ou bien ta cellule fixe par ex : $a$1
nomfeuil = ActiveSheet.Name
lapos = Application.WorksheetFunction.Find(zaza, x)
NomFeuilleEtZaza = ActiveSheet.Name & "!" & zaza
'Supprimer la référence si elle n'est pas en fin de liste
While InStr(x, NomFeuilleEtZaza & ",") > 0
b = InStr(x, NomFeuilleEtZaza & ",")
L = Len(NomFeuilleEtZaza & ",")
x = Mid(x, 1, b - 1) & Mid(x, b + L)
Wend
'Supprimer la référence si elle est en fin de liste
If InStr(x, NomFeuilleEtZaza) > 0 Then
b = InStr(x, NomFeuilleEtZaza)
L = Len(NomFeuilleEtZaza)
If b + L - 1 = Len(x) Then
x = Mid(x, 1, b - 1) & Mid(x, b + L)
End If
End If

ActiveWorkbook.Names.Add Name:="toto", RefersTo:="" & nouvtata
End Sub

Sous toutes réserves.


"Philippe.R" wrote in message
news:
Bon{j,s}o{u,i}r®

Je viens aussi sur cette nouvelle ficelle pour proposer :

Sub enlevatata()
'MPFE le 22/07/2004
x = ActiveWorkbook.Names("tata").RefersTo
zaza = ActiveCell.Address 'ou bien ta cellule fixe par ex : $a$1
nomfeuil = ActiveSheet.Name
lapos = Application.WorksheetFunction.Find(zaza, x)
If Len(x) - lapos - Len(zaza) > 0 Then
partdroite = Right(x, Len(x) - lapos - Len(zaza))
Else
partdroite = ""
End If
nouvtata = Left(x, lapos - 3 - Len(nomfeuil)) & partdroite
ActiveWorkbook.Names.Add Name:="tata", RefersTo:="" & nouvtata
End Sub

Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002
Pour suivre facilement le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"dcq" a écrit dans le message de
news:41002cc3$0$14844$
La plage à enlever sera toujours la même cellule, déterminée par ses
coordonnées par exemple A1. En revanche, le contenu du nom "TOTO", sera
variable, en fonction du nombre d'enregistrement de la feuille. Mais
comme


les ajouts se font par le haut, ce sera toujours la meme cellule, chaque
fois que l'on veut enlever une partie, qui sera effacée

Merci d'avance



"isabelle" a écrit dans le message de
news:
il faudrait nous dire qu'est ce qui détermine la plage à enlever de la
référence,

isabelle


Le probleme est que l'utilisateur ne doit pas définir les plages, je
veux


que cela soit fait automatiquement au sein d'une macro qui enleve
des




enregistrements.

"isabelle" a écrit dans le message de
news:
bonjour dcq,

x = Names("zaza").RefersTo
plage = InputBox("Modifier cette référence", Title:="Modifier",
Default:=x)
Names.Add Name:="zaza", RefersTo:="" & plage

isabelle


Impossible, car je ne connais pas la teneur de toto à l'instant
ou






je
lance
la macro. Je ne peux donc le faire autrement que par toto-A1. En
revahcne,


je sais que A1 sera dans toto.

"AV" a écrit dans le message de
news:
Tu le redéfinis en "oubliant" A1 :

ActiveWorkbook.Names.Add Name:="toto", RefersTo:= _
"þuil1!$A$8,Feuil1!$A$15,Feuil1!$A$22,Feuil1!$A$29"

AV