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

Problème d'écriture

6 réponses
Avatar
Thierry
Bonjour,

j'ai deux problèmes :

- la première fois que je passe sur cette instruction :

ActiveWorkbook.Names.Delete
Name:="Liste" & j

Vba plante puisque ce nom de liste n'existe pas. Comment faire pourqu'il
ignore l'erreur. Voila le code complet :

With Sheets("Paramètres")
ActiveWorkbook.Names.Delete Name:="Liste" & j
ActiveWorkbook.Names.Add Name:="Liste" & j,
RefersTo:="=offset(choix2,1,match(Cells(" & j & ", " & k &
"),choix1,0)-1,counta(offset(choix2,,match(Cells(" & j & ", " & k &
"),choix1,0)-1))-1)"
End With

- Une fois ma liste crée je la valide par l'instruction :

With Selection.Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=Liste" & j
End With

lorsque l'instruction Add se réalise VBA plante comment faire référence a
ma liste ?

Merci.

--
Ne pas répondre à l'adresse anti-spam.




---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-1, 31/05/2007
Analyse le : 01/06/2007 08:36:38
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com

6 réponses

Avatar
JB
Bonjour,

Ajouter :

On Error Resume Next ' avant instruction qui plante
........................
On Error Goto 0 ' après instruction qui plante

Il n'est pas nécessaire de supprimer le nom pour renommer

JB
On 1 juin, 08:36, "Thierry" wrote:
Bonjour,

j'ai deux problèmes :

- la première fois que je passe sur cette instruction :

ActiveWorkbook.Names.Delete
Name:="Liste" & j

Vba plante puisque ce nom de liste n'existe pas. Comment faire pourqu 'il
ignore l'erreur. Voila le code complet :

With Sheets("Paramètres")
ActiveWorkbook.Names.Delete Name:="Liste" & j
ActiveWorkbook.Names.Add Name:="Liste" & j,
RefersTo:="=offset(choix2,1,match(Cells(" & j & ", " & k &
"),choix1,0)-1,counta(offset(choix2,,match(Cells(" & j & ", " & k &
"),choix1,0)-1))-1)"
End With

- Une fois ma liste crée je la valide par l'instruction :

With Selection.Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=Liste" & j
End With

lorsque l'instruction Add se réalise VBA plante comment faire réf érence a
ma liste ?

Merci.

--
Ne pas répondre à l'adresse anti-spam.

---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-1, 31/05/2007
Analyse le : 01/06/2007 08:36:38
avast! - copyright (c) 1988-2007 ALWIL Software.http://www.avast.com


Avatar
Thierry
Merci c'est bon par contre je me retrouve avec des listes de cette forme :

ÞCALER(choix2;1;EQUIV(Cells(12;
3);choix1;0)-1;NBVAL(DECALER(choix2;;EQUIV(Cells(12; 3);choix1;0)-1))-1)

toutes les virgules sont des points virgules est ce que c'est pour cela que
mon add plante ?

"JB" a écrit dans le message de news:

Bonjour,

Ajouter :

On Error Resume Next ' avant instruction qui plante
........................
On Error Goto 0 ' après instruction qui plante

Il n'est pas nécessaire de supprimer le nom pour renommer

JB
On 1 juin, 08:36, "Thierry" wrote:
Bonjour,

j'ai deux problèmes :

- la première fois que je passe sur cette instruction :

ActiveWorkbook.Names.Delete
Name:="Liste" & j

Vba plante puisque ce nom de liste n'existe pas. Comment faire
pourqu'il
ignore l'erreur. Voila le code complet :

With Sheets("Paramètres")
ActiveWorkbook.Names.Delete Name:="Liste" & j
ActiveWorkbook.Names.Add Name:="Liste" & j,
RefersTo:="=offset(choix2,1,match(Cells(" & j & ", " & k &
"),choix1,0)-1,counta(offset(choix2,,match(Cells(" & j & ", " & k &
"),choix1,0)-1))-1)"
End With

- Une fois ma liste crée je la valide par l'instruction :

With Selection.Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=Liste" & j
End With

lorsque l'instruction Add se réalise VBA plante comment faire référence
a
ma liste ?

Merci.

--
Ne pas répondre à l'adresse anti-spam.

---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-1, 31/05/2007
Analyse le : 01/06/2007 08:36:38
avast! - copyright (c) 1988-2007 ALWIL Software.http://www.avast.com





---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000746-1, 31/05/2007
Analyse le : 01/06/2007 09:56:42
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com






---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-1, 31/05/2007
Analyse le : 01/06/2007 10:29:53
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com

Avatar
JB
Bonjour,

Création de listes en cascade par VBA:

'-- nommage
ActiveWorkbook.Names.Add Name:="Choix1", RefersToR1C1:= _
"=OFFSET(Listes!R1C1,,,,COUNTA(Listes!R1C1:R1C26))"

ActiveWorkbook.Names.Add Name:="Choix2", RefersToR1C1:="=Listes!
C1"
'-- création listes
[B2].Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=Choix1"
End With
Range("B2") = Range("choix1")(1)
Range("C2").Select
x =
"=offset(Choix2,1,match(B2,Choix1,0)-1,counta(offset(Choix2,,match(B2,Cho ix1,0)-1))-1)"
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:=x
End With
'--- copie listes
[B2].ClearContents
[B2:C2].Copy [B3:B10]
End Sub

http://boisgontierjacques.free.fr/fichiers/DonneesValidation/CreationListeC ascadeVBA.xls

JB

On 1 juin, 10:29, "Thierry" wrote:
Merci c'est bon par contre je me retrouve avec des listes de cette forme :

ÞCALER(choix2;1;EQUIV(Cells(12;
3);choix1;0)-1;NBVAL(DECALER(choix2;;EQUIV(Cells(12; 3);choix1;0)-1))-1)

toutes les virgules sont des points virgules est ce que c'est pour cela q ue
mon add plante ?

"JB" a écrit dans le message de news:

Bonjour,

Ajouter :

On Error Resume Next ' avant instruction qui plante
........................
On Error Goto 0 ' après instruction qui plante

Il n'est pas nécessaire de supprimer le nom pour renommer

JB
On 1 juin, 08:36, "Thierry" wrote:





Bonjour,

j'ai deux problèmes :

- la première fois que je passe sur cette instruction :

ActiveWorkbook.Names.Delete
Name:="Liste" & j

Vba plante puisque ce nom de liste n'existe pas. Comment faire
pourqu'il
ignore l'erreur. Voila le code complet :

With Sheets("Paramètres")
ActiveWorkbook.Names.Delete Name:="Liste" & j
ActiveWorkbook.Names.Add Name:="Liste" & j,
RefersTo:="=offset(choix2,1,match(Cells(" & j & ", " & k &
"),choix1,0)-1,counta(offset(choix2,,match(Cells(" & j & ", " & k &
"),choix1,0)-1))-1)"
End With

- Une fois ma liste crée je la valide par l'instruction :

With Selection.Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=Liste" & j
End With

lorsque l'instruction Add se réalise VBA plante comment faire réf érence
a
ma liste ?

Merci.

--
Ne pas répondre à l'adresse anti-spam.

---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-1, 31/05/2007
Analyse le : 01/06/2007 08:36:38
avast! - copyright (c) 1988-2007 ALWIL Software.http://www.avast.com


---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000746-1, 31/05/2007
Analyse le : 01/06/2007 09:56:42
avast! - copyright (c) 1988-2007 ALWIL Software.http://www.avast.com

---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-1, 31/05/2007
Analyse le : 01/06/2007 10:29:53
avast! - copyright (c) 1988-2007 ALWIL Software.http://www.avast.com- Mas quer le texte des messages précédents -

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



Avatar
Thierry
le problème c'est que je n'ai pas que B2 comme cellule ??? il faut qu'elle
soit puisse varier dynamiquement car dans b2,b3,b4 peuvent avoir des choix
dans la liste déroulantes differents

"JB" a écrit dans le message de news:

Bonjour,

Création de listes en cascade par VBA:

'-- nommage
ActiveWorkbook.Names.Add Name:="Choix1", RefersToR1C1:= _
"=OFFSET(Listes!R1C1,,,,COUNTA(Listes!R1C1:R1C26))"

ActiveWorkbook.Names.Add Name:="Choix2", RefersToR1C1:="=Listes!
C1"
'-- création listes
[B2].Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=Choix1"
End With
Range("B2") = Range("choix1")(1)
Range("C2").Select
x "=offset(Choix2,1,match(B2,Choix1,0)-1,counta(offset(Choix2,,match(B2,Choix1,0)-1))-1)"
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:=x
End With
'--- copie listes
[B2].ClearContents
[B2:C2].Copy [B3:B10]
End Sub

http://boisgontierjacques.free.fr/fichiers/DonneesValidation/CreationListeCascadeVBA.xls

JB

On 1 juin, 10:29, "Thierry" wrote:
Merci c'est bon par contre je me retrouve avec des listes de cette forme :

ÞCALER(choix2;1;EQUIV(Cells(12;
3);choix1;0)-1;NBVAL(DECALER(choix2;;EQUIV(Cells(12; 3);choix1;0)-1))-1)

toutes les virgules sont des points virgules est ce que c'est pour cela
que
mon add plante ?

"JB" a écrit dans le message de news:

Bonjour,

Ajouter :

On Error Resume Next ' avant instruction qui plante
........................
On Error Goto 0 ' après instruction qui plante

Il n'est pas nécessaire de supprimer le nom pour renommer

JB
On 1 juin, 08:36, "Thierry" wrote:





Bonjour,

j'ai deux problèmes :

- la première fois que je passe sur cette instruction :

ActiveWorkbook.Names.Delete
Name:="Liste" & j

Vba plante puisque ce nom de liste n'existe pas. Comment faire
pourqu'il
ignore l'erreur. Voila le code complet :

With Sheets("Paramètres")
ActiveWorkbook.Names.Delete Name:="Liste" & j
ActiveWorkbook.Names.Add Name:="Liste" & j,
RefersTo:="=offset(choix2,1,match(Cells(" & j & ", " & k &
"),choix1,0)-1,counta(offset(choix2,,match(Cells(" & j & ", " & k &
"),choix1,0)-1))-1)"
End With

- Une fois ma liste crée je la valide par l'instruction :

With Selection.Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=Liste" & j
End With

lorsque l'instruction Add se réalise VBA plante comment faire
référence
a
ma liste ?

Merci.

--
Ne pas répondre à l'adresse anti-spam.

---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-1, 31/05/2007
Analyse le : 01/06/2007 08:36:38
avast! - copyright (c) 1988-2007 ALWIL Software.http://www.avast.com


---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000746-1, 31/05/2007
Analyse le : 01/06/2007 09:56:42
avast! - copyright (c) 1988-2007 ALWIL Software.http://www.avast.com

---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-1, 31/05/2007
Analyse le : 01/06/2007 10:29:53
avast! - copyright (c) 1988-2007 ALWIL Software.http://www.avast.com-
Masquer le texte des messages précédents -

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





---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000746-2, 01/06/2007
Analyse le : 01/06/2007 16:13:35
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com






---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-2, 01/06/2007
Analyse le : 01/06/2007 16:18:31
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com


Avatar
JB
C'est ce que le programme fait:

'--- copie listes
[B2].ClearContents
[B2:C2].Copy [B3:B10]

JB


On 1 juin, 16:18, "Thierry" wrote:
le problème c'est que je n'ai pas que B2 comme cellule ??? il faut qu'e lle
soit puisse varier dynamiquement car dans b2,b3,b4 peuvent avoir des choix
dans la liste déroulantes differents

"JB" a écrit dans le message de news:

Bonjour,

Création de listes en cascade par VBA:

'-- nommage
ActiveWorkbook.Names.Add Name:="Choix1", RefersToR1C1:= _
"=OFFSET(Listes!R1C1,,,,COUNTA(Listes!R1C1:R1C26))"

ActiveWorkbook.Names.Add Name:="Choix2", RefersToR1C1:="=Listes!
C1"
'-- création listes
[B2].Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=Choix1"
End With
Range("B2") = Range("choix1")(1)
Range("C2").Select
x =
"=offset(Choix2,1,match(B2,Choix1,0)-1,counta(offset(Choix2,,match(B2,C hoix­1,0)-1))-1)"
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:=x
End With
'--- copie listes
[B2].ClearContents
[B2:C2].Copy [B3:B10]
End Sub

http://boisgontierjacques.free.fr/fichiers/DonneesValidation/Creation...

JB

On 1 juin, 10:29, "Thierry" wrote:





Merci c'est bon par contre je me retrouve avec des listes de cette form e :

ÞCALER(choix2;1;EQUIV(Cells(12;
3);choix1;0)-1;NBVAL(DECALER(choix2;;EQUIV(Cells(12; 3);choix1;0)-1))-1)

toutes les virgules sont des points virgules est ce que c'est pour cela
que
mon add plante ?

"JB" a écrit dans le message de news:

Bonjour,

Ajouter :

On Error Resume Next ' avant instruction qui plante
........................
On Error Goto 0 ' après instruction qui plante

Il n'est pas nécessaire de supprimer le nom pour renommer

JB
On 1 juin, 08:36, "Thierry" wrote:

Bonjour,

j'ai deux problèmes :

- la première fois que je passe sur cette instruction :

ActiveWorkbook.Names.Delete
Name:="Liste" & j

Vba plante puisque ce nom de liste n'existe pas. Comment faire
pourqu'il
ignore l'erreur. Voila le code complet :

With Sheets("Paramètres")
ActiveWorkbook.Names.Delete Name:="Liste" & j
ActiveWorkbook.Names.Add Name:="Liste" & j,
RefersTo:="=offset(choix2,1,match(Cells(" & j & ", " & k &
"),choix1,0)-1,counta(offset(choix2,,match(Cells(" & j & ", " & k &
"),choix1,0)-1))-1)"
End With

- Une fois ma liste crée je la valide par l'instruction :

With Selection.Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=Liste " & j
End With

lorsque l'instruction Add se réalise VBA plante comment faire
référence
a
ma liste ?

Merci.

--
Ne pas répondre à l'adresse anti-spam.

---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-1, 31/05/2007
Analyse le : 01/06/2007 08:36:38
avast! - copyright (c) 1988-2007 ALWIL Software.http://www.avast.com


---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000746-1, 31/05/2007
Analyse le : 01/06/2007 09:56:42
avast! - copyright (c) 1988-2007 ALWIL Software.http://www.avast.com

---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-1, 31/05/2007
Analyse le : 01/06/2007 10:29:53
avast! - copyright (c) 1988-2007 ALWIL Software.http://www.avast.com-
Masquer le texte des messages précédents -

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


---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000746-2, 01/06/2007
Analyse le : 01/06/2007 16:13:35
avast! - copyright (c) 1988-2007 ALWIL Software.http://www.avast.com

---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-2, 01/06/2007
Analyse le : 01/06/2007 16:18:31
avast! - copyright (c) 1988-2007 ALWIL Software.http://www.avast.com- Mas quer le texte des messages précédents -

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




Avatar
Thierry
j'ai déclarer x avec non pas b2 mais c12 puique c'est la que se trouve ma
première cellule avec le premier choix ( la liste des noms qui sont
initialisés) :

x =
"=offset(choix2,1,match(C12,choix1,0)-1,counta(offset(choix2,,match(C12,choix­1,0)-1))-1)"

Quand je récupère la dernière valeur de x dans une cellule cela donne :

ÞCALER(choix2;1;EQUIV(L(11)C;choix1;0)-1;NBVAL(DECALER(choix2;;EQUIV(L(11)C;Choix­1;0)-1))-1)
alors que je devrais avoir à la place de C12

De plus lorsque j'execute :
Cells(j, Col).Validation.Add xlValidateList,
AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=x

Vba me fait une erreur 1004 ????????

Pour après je ne sais pas voilà ce que je fais pour la copy :

[Cells(j - 1, k):Cells(j - 1,Pcol + m -1)].Copy [Cells(j,
k):Cells(j,Pcol + m -1)]

De C12:k sur C13:k (ou k représente la cellule du dernier jour du mois qui
est la colonne Pcol + m -1)

"JB" a écrit dans le message de news:

C'est ce que le programme fait:

'--- copie listes
[B2].ClearContents
[B2:C2].Copy [B3:B10]

JB


On 1 juin, 16:18, "Thierry" wrote:
le problème c'est que je n'ai pas que B2 comme cellule ??? il faut qu'elle
soit puisse varier dynamiquement car dans b2,b3,b4 peuvent avoir des choix
dans la liste déroulantes differents

"JB" a écrit dans le message de news:

Bonjour,

Création de listes en cascade par VBA:

'-- nommage
ActiveWorkbook.Names.Add Name:="Choix1", RefersToR1C1:= _
"=OFFSET(Listes!R1C1,,,,COUNTA(Listes!R1C1:R1C26))"

ActiveWorkbook.Names.Add Name:="Choix2", RefersToR1C1:="=Listes!
C1"
'-- création listes
[B2].Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:="=Choix1"
End With
Range("B2") = Range("choix1")(1)
Range("C2").Select
x > "=offset(Choix2,1,match(B2,Choix1,0)-1,counta(offset(Choix2,,match(B2,Choix­1,0)-1))-1)"
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,
Operator:= _
xlBetween, Formula1:=x
End With
'--- copie listes
[B2].ClearContents
[B2:C2].Copy [B3:B10]
End Sub

http://boisgontierjacques.free.fr/fichiers/DonneesValidation/Creation...

JB

On 1 juin, 10:29, "Thierry" wrote:





Merci c'est bon par contre je me retrouve avec des listes de cette forme
:

ÞCALER(choix2;1;EQUIV(Cells(12;
3);choix1;0)-1;NBVAL(DECALER(choix2;;EQUIV(Cells(12; 3);choix1;0)-1))-1)

toutes les virgules sont des points virgules est ce que c'est pour cela
que
mon add plante ?

"JB" a écrit dans le message de news:

Bonjour,

Ajouter :

On Error Resume Next ' avant instruction qui plante
........................
On Error Goto 0 ' après instruction qui plante

Il n'est pas nécessaire de supprimer le nom pour renommer

JB
On 1 juin, 08:36, "Thierry" wrote:

Bonjour,

j'ai deux problèmes :

- la première fois que je passe sur cette instruction :

ActiveWorkbook.Names.Delete
Name:="Liste" & j

Vba plante puisque ce nom de liste n'existe pas. Comment faire
pourqu'il
ignore l'erreur. Voila le code complet :

With Sheets("Paramètres")
ActiveWorkbook.Names.Delete Name:="Liste" & j
ActiveWorkbook.Names.Add Name:="Liste" & j,
RefersTo:="=offset(choix2,1,match(Cells(" & j & ", " & k &
"),choix1,0)-1,counta(offset(choix2,,match(Cells(" & j & ", " & k &
"),choix1,0)-1))-1)"
End With

- Une fois ma liste crée je la valide par l'instruction :

With Selection.Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=Liste" & j
End With

lorsque l'instruction Add se réalise VBA plante comment faire
référence
a
ma liste ?

Merci.

--
Ne pas répondre à l'adresse anti-spam.

---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-1, 31/05/2007
Analyse le : 01/06/2007 08:36:38
avast! - copyright (c) 1988-2007 ALWIL Software.http://www.avast.com


---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000746-1, 31/05/2007
Analyse le : 01/06/2007 09:56:42
avast! - copyright (c) 1988-2007 ALWIL Software.http://www.avast.com

---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-1, 31/05/2007
Analyse le : 01/06/2007 10:29:53
avast! - copyright (c) 1988-2007 ALWIL Software.http://www.avast.com-
Masquer le texte des messages précédents -

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


---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000746-2, 01/06/2007
Analyse le : 01/06/2007 16:13:35
avast! - copyright (c) 1988-2007 ALWIL Software.http://www.avast.com

---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-2, 01/06/2007
Analyse le : 01/06/2007 16:18:31
avast! - copyright (c) 1988-2007 ALWIL Software.http://www.avast.com-
Masquer le texte des messages précédents -

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





---
Antivirus avast! : message Entrant sain.
Base de donnees virale (VPS) : 000746-2, 01/06/2007
Analyse le : 01/06/2007 17:14:46
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com






---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000746-2, 01/06/2007
Analyse le : 01/06/2007 18:00:39
avast! - copyright (c) 1988-2007 ALWIL Software.
http://www.avast.com