XL 2013 erreur 1004 définie par l'application ou par l'objet

adet ruireux

XLDnaute Nouveau
Bonjour à tous,

Depuis que j'ai partagé mon classeur, ma macro s'arrête en affichant ce message.
Sans titre.png


NB: Elle fonctionnait parfaitement avant le partage.

Voici le code que j'obtiens en mode enregistrement. J'ai bien conscience qu'il ne doit pas être optimisé mais ne suis pas un pro du VBA.


Sub adet9Debut()
'
' adet9Debut Macro
'
Sheets("Données").Select
' Création de la liste déroulante
Range("A3").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Paramètres!$N$1:$N$2"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

'
End Sub
Ce qui m'interpelle, c'est le fait que le script fonctionne quand le classeur n'est pas partagé !
Sauriez-vous comment faire pour qu'il fonctionne en l'étant ? Je tourne un peu en rond....
Un grand merci d'avance.
 

Phil69970

XLDnaute Barbatruc
Bonjour @adet ruireux ,Patrick

Je pense que le problème vient d’ici :

.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Paramètres!$N$1:$N$2"

Et comme tu n'as que 2 lignes dans ta liste je pencherais pour une liste ou tu n'as que 2 items dedans donc une liste type "Oui/Non" et je la remplacerais par :

VB:
Sub adet9Debut()
Sheets("Données").Range("A3").Select

With Selection.Validation ' Création de la liste déroulante
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="Oui,Non"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
End With
End Sub

En clair j’écris en dur les 2 noms qui sont dans la liste déroulante et je ne suis plus embeté.....

*Ton pb vient surement du fait que en réseau il ne sait pas dans quel classeur aller ici:
=Paramètres!$N$1:$N$2"

Donc avec ma solution il y a plus de pb

*Merci de ton retour

@Phil69970
 

adet ruireux

XLDnaute Nouveau
Bonjour @adet ruireux ,Patrick

Je pense que le problème vient d’ici :



Et comme tu n'as que 2 lignes dans ta liste je pencherais pour une liste ou tu n'as que 2 items dedans donc une liste type "Oui/Non" et je la remplacerais par :

VB:
Sub adet9Debut()
Sheets("Données").Range("A3").Select

With Selection.Validation ' Création de la liste déroulante
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="Oui,Non"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
End With
End Sub

En clair j’écris en dur les 2 noms qui sont dans la liste déroulante et je ne suis plus embeté.....

*Ton pb vient surement du fait que en réseau il ne sait pas dans quel classeur aller ici:


Donc avec ma solution il y a plus de pb

*Merci de ton retour

@Phil69970
Bonjour Phil69970,

Merci pour ton intervention,

Je viens de tester ta proposition mais j'ai une nouvelle erreur (la mathode Select de la class Range a échoué).
 
Dernière édition:

adet ruireux

XLDnaute Nouveau
bonjour @Phil69970
la LV est mis en place par une sub
je suppute donc que les valeurs dans N1:N2 sont susceptibles de changer
sinon a quoi cela servirait de le faire en VBA:oops:🤔
Effectivement, les valeurs présentes dans cette plage sont susceptibles d'être modifiées par la suite.
Ceci étant, si je trouvais une solution pour que ça fonctionne sans, je serais déjà content.
 

patricktoulon

XLDnaute Barbatruc
re
j'ai une intuition mais je sais pas si ...mais je tente quand meme
VB:
Sub adet9Debut()
Dim X
Sheets("Données").Range("A3").Select
with sheets("paramètres":x=.[N1] et "," & .[N2]:end with
With Selection.Validation ' Création de la liste déroulante
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:=x
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
End With
End Sub
 

Phil69970

XLDnaute Barbatruc
Re

Peut être avec une référence plus explicite au classeur

VB:
Sub adet9Debut()
ThisWorkbook.Sheets("Données").Range("A3").Select

With Selection.Validation ' Création de la liste déroulante
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="Oui,Non"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
End With
End Sub

@Phil69970
 

patricktoulon

XLDnaute Barbatruc
Ah!!!!
si tu a testé la proposition de @Phil69970 et que tu a une erreur ça veux dire qu'il y a un soucis d'acces
  1. verifier les noms de feuille cités dans le code
  2. cellule,feuille,classeur
  3. vérifier la cellule A3 si elle n'est pas en lecture seule
  4. vérifier pareillement pour la feuille
  5. et pareil pour le classeur

etant en réseau l il est possible que le classeur se comporte comme si c'etait un xltm(fichier model)
 

adet ruireux

XLDnaute Nouveau
re
j'ai une intuition mais je sais pas si ...mais je tente quand meme
VB:
Sub adet9Debut()
Dim X
Sheets("Données").Range("A3").Select
with sheets("paramètres":x=.[N1] et "," & .[N2]:end with
With Selection.Validation ' Création de la liste déroulante
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:=x
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
End With
End Sub
Je pense qu'il y a une erreur dans la ligne
with sheets("Paramètres":x=.[N1] et "," & .[N2]:end with
Ne manquerait-il pas une parenthèse quelque part ?
 

Discussions similaires

Statistiques des forums

Discussions
311 723
Messages
2 081 934
Membres
101 844
dernier inscrit
pktla