Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Inputbox ou Usf ?

7 réponses
Avatar
Patrick BASTARD
Bonjour à tous

Mes noms de zone sont, par exemple, en A2 :An
*************************
Sub Suppr()
Dim LeNom
LeNom = InputBox("Choisir un nom", "Suppression d'une zone et d'un nom
de zone", "???")
Application.Goto Reference:=LeNom
Selection.Delete Shift:=xlUp
ActiveWorkbook.Names(LeNom).Delete
End Sub
*************************
Quelles solutions préconiseriez-vous pour remplacer les "???" par la liste
des noms ?
Pensez-vous que je doive obligatoirement passer par un USF pour avoir le
choix (liste déroulante) des noms disponibles ?

D'avance, merci pour vos conseils.
--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.

7 réponses

Avatar
JB
Bonsoir,

http://cjoint.com/?lys2YwMsRA

Private Sub UserForm_Initialize()
nchamps = 0
For Each n In ActiveWorkbook.Names
nchamps = nchamps + 1
Me.ListBox1.AddItem n.Name
Next n
End Sub

Private Sub B_sup_Click()
temp = Me.ListBox1
If MsgBox("Etes vous sûr?", vbYesNo) = vbYes Then
ActiveWorkbook.Names(temp).Delete
Me.ListBox1.RemoveItem Me.ListBox1.ListIndex
End If
End Sub

JB

On 24 nov, 18:00, "Patrick BASTARD"
wrote:
Bonjour à tous

Mes noms de zone sont, par exemple, en A2 :An
*************************
Sub Suppr()
Dim LeNom
LeNom = InputBox("Choisir un nom", "Suppression d'une zone et d'un n om
de zone", "???")
Application.Goto Reference:=LeNom
Selection.Delete Shift:=xlUp
ActiveWorkbook.Names(LeNom).Delete
End Sub
*************************
Quelles solutions préconiseriez-vous pour remplacer les "???" par la lis te
des noms ?
Pensez-vous que je doive obligatoirement passer par un USF pour avoir le
choix (liste déroulante) des noms disponibles ?

D'avance, merci pour vos conseils.
--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.


Avatar
Patrick BASTARD
Bonsoir, *Jacques*

Je te remercie.
Je vais adapter ton code pour exclure les noms à ne pas supprimer (tels que
modèle, zone d'impression...).

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.

Bonsoir,

http://cjoint.com/?lys2YwMsRA

Private Sub UserForm_Initialize()
nchamps = 0
For Each n In ActiveWorkbook.Names
nchamps = nchamps + 1
Me.ListBox1.AddItem n.Name
Next n
End Sub

Private Sub B_sup_Click()
temp = Me.ListBox1
If MsgBox("Etes vous sûr?", vbYesNo) = vbYes Then
ActiveWorkbook.Names(temp).Delete
Me.ListBox1.RemoveItem Me.ListBox1.ListIndex
End If
End Sub

JB

On 24 nov, 18:00, "Patrick BASTARD"
wrote:
Bonjour à tous

Mes noms de zone sont, par exemple, en A2 :An
*************************
Sub Suppr()
Dim LeNom
LeNom = InputBox("Choisir un nom", "Suppression d'une zone et
d'un nom de zone", "???")
Application.Goto Reference:=LeNom
Selection.Delete Shift:=xlUp
ActiveWorkbook.Names(LeNom).Delete
End Sub
*************************
Quelles solutions préconiseriez-vous pour remplacer les "???" par la
liste des noms ?
Pensez-vous que je doive obligatoirement passer par un USF pour
avoir le choix (liste déroulante) des noms disponibles ?

D'avance, merci pour vos conseils.
--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.




Avatar
JB
http://cjoint.com/?lytut7Dugt

JB

On 24 nov, 18:55, JB wrote:
Bonsoir,

http://cjoint.com/?lys2YwMsRA

Private Sub UserForm_Initialize()
nchamps = 0
For Each n In ActiveWorkbook.Names
nchamps = nchamps + 1
Me.ListBox1.AddItem n.Name
Next n
End Sub

Private Sub B_sup_Click()
temp = Me.ListBox1
If MsgBox("Etes vous sûr?", vbYesNo) = vbYes Then
ActiveWorkbook.Names(temp).Delete
Me.ListBox1.RemoveItem Me.ListBox1.ListIndex
End If
End Sub

JB

On 24 nov, 18:00, "Patrick BASTARD"



wrote:
Bonjour à tous

Mes noms de zone sont, par exemple, en A2 :An
*************************
Sub Suppr()
Dim LeNom
LeNom = InputBox("Choisir un nom", "Suppression d'une zone et d'un nom
de zone", "???")
Application.Goto Reference:=LeNom
Selection.Delete Shift:=xlUp
ActiveWorkbook.Names(LeNom).Delete
End Sub
*************************
Quelles solutions préconiseriez-vous pour remplacer les "???" par la l iste
des noms ?
Pensez-vous que je doive obligatoirement passer par un USF pour avoir le
choix (liste déroulante) des noms disponibles ?

D'avance, merci pour vos conseils.
--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
LSteph
Bonsoir,

oui pouquoi pas avec

Userform (exemple de code ci après)
une listbox 2 commandbuttons et 1 label

mais

tu peux aussi sans doute faire autrement liste ou autre dans la
feuille et une macro.

J'écarterais l'inputbox mais attention
regarde là '*****t'es sûr*****
tout va remonter et surtout
d'autre part certains noms peuvent être autre chose qu'une plage!

Cordialement

'lSteph

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub listbox1_Change()
If Len(ListBox1) > 0 Then _
Label1 = ActiveWorkbook.Names(ListBox1.ListIndex + 1).RefersTo
End Sub

Private Sub CommandButton1_Click()
Dim msg As Integer
If Len(ListBox1) > 0 Then
msg = MsgBox("La zone: " & ListBox1 & _
" va être supprimée", vbOKCancel, "Attention")
If msg = 1 Then
'*****t'es sûr*****
Application.Goto Reference:=ListBox1
Selection.Delete Shift:=xlUp
ActiveWorkbook.Names(ListBox1.ListIndex + 1).Delete
'******************
Else
MsgBox "annulé"
End If
Unload Me
Else
MsgBox "vous devez sélectionner un nom"
End If

End Sub

Private Sub UserForm_Initialize()
Dim i As Integer
ListBox1.Clear

With ActiveWorkbook
For i = 1 To .Names.Count
ListBox1.AddItem .Names(i).Name
Next
End With
End Sub


Bonjour à tous

Mes noms de zone sont, par exemple, en A2 :An
*************************
Sub Suppr()
Dim LeNom
LeNom = InputBox("Choisir un nom", "Suppression d'une zone et d'un nom
de zone", "???")
Application.Goto Reference:=LeNom
Selection.Delete Shift:=xlUp
ActiveWorkbook.Names(LeNom).Delete
End Sub
*************************
Quelles solutions préconiseriez-vous pour remplacer les "???" par la liste
des noms ?
Pensez-vous que je doive obligatoirement passer par un USF pour avoir le
choix (liste déroulante) des noms disponibles ?

D'avance, merci pour vos conseils.


Avatar
Patrick BASTARD
Bonsoir, *LSteph*

Merci pour tes conseils.
Je souhaite en effet faire remonter les zones nommées lorsque je supprime
l'une d'elles.
Concernant la suppression des noms, il suffira que j'exclue les noms qui ne
sont pas des zones supprimables (Zone d'impression, Impression des
titres...) en les testant dans le code suivant :

With ActiveWorkbook
For i = 1 To .Names.Count
if Names(i).Name <>...then
ListBox1.AddItem .Names(i).Name
Next
End With
End Sub

J'y travaille.

--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.

Bonsoir,

oui pouquoi pas avec

Userform (exemple de code ci après)
une listbox 2 commandbuttons et 1 label

mais

tu peux aussi sans doute faire autrement liste ou autre dans la
feuille et une macro.

J'écarterais l'inputbox mais attention
regarde là '*****t'es sûr*****
tout va remonter et surtout
d'autre part certains noms peuvent être autre chose qu'une plage!

Cordialement

'lSteph

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub listbox1_Change()
If Len(ListBox1) > 0 Then _
Label1 = ActiveWorkbook.Names(ListBox1.ListIndex + 1).RefersTo
End Sub

Private Sub CommandButton1_Click()
Dim msg As Integer
If Len(ListBox1) > 0 Then
msg = MsgBox("La zone: " & ListBox1 & _
" va être supprimée", vbOKCancel, "Attention")
If msg = 1 Then
'*****t'es sûr*****
Application.Goto Reference:=ListBox1
Selection.Delete Shift:=xlUp
ActiveWorkbook.Names(ListBox1.ListIndex + 1).Delete
'******************
Else
MsgBox "annulé"
End If
Unload Me
Else
MsgBox "vous devez sélectionner un nom"
End If

End Sub

Private Sub UserForm_Initialize()
Dim i As Integer
ListBox1.Clear

With ActiveWorkbook
For i = 1 To .Names.Count
ListBox1.AddItem .Names(i).Name
Next
End With
End Sub


Bonjour à tous

Mes noms de zone sont, par exemple, en A2 :An
*************************
Sub Suppr()
Dim LeNom
LeNom = InputBox("Choisir un nom", "Suppression d'une zone et
d'un nom de zone", "???")
Application.Goto Reference:=LeNom
Selection.Delete Shift:=xlUp
ActiveWorkbook.Names(LeNom).Delete
End Sub
*************************
Quelles solutions préconiseriez-vous pour remplacer les "???" par la
liste des noms ?
Pensez-vous que je doive obligatoirement passer par un USF pour
avoir le choix (liste déroulante) des noms disponibles ?

D'avance, merci pour vos conseils.




Avatar
LSteph
Bonjour,

un select case du .Names(i).name (noms à exclure séparés par ,)devrait
faire l'affaire pour mettre un tst booleen avant execution
de If tst ...

@+

lSteph

Bonsoir, *LSteph*

Merci pour tes conseils.
Je souhaite en effet faire remonter les zones nommées lorsque je supprime
l'une d'elles.
Concernant la suppression des noms, il suffira que j'exclue les noms qui ne
sont pas des zones supprimables (Zone d'impression, Impression des
titres...) en les testant dans le code suivant :

With ActiveWorkbook
For i = 1 To .Names.Count
if Names(i).Name <>...then
ListBox1.AddItem .Names(i).Name
Next
End With
End Sub

J'y travaille.



Avatar
Patrick BASTARD
Merci, *LSteph*


--
Bien amicordialement,
P. Bastard

Avant d'imprimer ce mail, ayez une pensée pour les arbres.

Bonjour,

un select case du .Names(i).name (noms à exclure séparés par
,)devrait faire l'affaire pour mettre un tst booleen avant execution
de If tst ...

@+

lSteph

Bonsoir, *LSteph*

Merci pour tes conseils.
Je souhaite en effet faire remonter les zones nommées lorsque je
supprime l'une d'elles.
Concernant la suppression des noms, il suffira que j'exclue les noms
qui ne sont pas des zones supprimables (Zone d'impression,
Impression des titres...) en les testant dans le code suivant :

With ActiveWorkbook
For i = 1 To .Names.Count
if Names(i).Name <>...then
ListBox1.AddItem .Names(i).Name
Next
End With
End Sub

J'y travaille.