[VBa] Argument Non Falcutatif

petithomme

XLDnaute Occasionnel
Salut tout le monde,

c'est re-moi ^^

voila j'ai un ptit bout de code qui bug . . . j'ai le droit a une msgbox qui me dit : Argument non falcutatif
Je n'arrive pas à trouver d'où provient l'erreur, un ptit coup de pouce svp ?

Ce code permet en cliquant sur un bouton de parcourrir une plage de cellule, de lire les contenus et d'ouvrir les fichiers xls puis les fermer.
Buton() est associée à un bouton cliquable
Dans la cellule de Paramètres!B1 --> Non d'une feuille
Dans la cellule de Paramètres!D1 --> Non d'une plage

Sub bouton()
Dim ws As Worksheets
Dim cel As Range
Set ws = Workbooks(Worksheets("Paramètres").Range("B1").Value)
Set cel = Range(Worksheets("Paramètres").Range("D1").Value)
ouvrirfermer ws, cel
End Sub


Public Sub ouvrirfermer(ws As Worksheets, cel As Range)
Dim cel2 As Range
Dim i As Integer
Dim nb As Integer
i = 1

Set cel2 = ws.cel(i)
nb = Workbooks.Count
While cel2.Value <> "FIN"
Workbooks.Open cel2.Value
Workbooks(nb + 1).Close
i = i + 1
Set cel2 = ws.cel(i)
Wend
End Sub

Merci encore ^^
 
Dernière édition:

Minick

XLDnaute Impliqué
Re : [VBa] Argument Non Falcutatif

Salut,

Une piste
il y a un petit probleme ici:
Set ws = Workbooks(Worksheets("Paramètres").Range("B1").Value)


ws est defini en worksheets et tu lui affectes un workbook
qui de plus n'existe surment pas car tu as le nom d'une feuille en B1.

++
 

petithomme

XLDnaute Occasionnel
Re : [VBa] Argument Non Falcutatif

Minick à dit:
Salut,

Une piste
il y a un petit probleme ici:
Set ws = Workbooks(Worksheets("Paramètres").Range("B1").Value)

bien vu ^^ j'ai changé mais toujours le même problème lol


pierrejean à dit:
re

ok (moi je mets toujours les parentheses)

toujours dans le registre des peut-etre

es-tu sur de ta declaration en Worksheets ?
j'ai beau mettre un S ou non ca change rien . . .
 

petithomme

XLDnaute Occasionnel
Re : [VBa] Argument Non Falcutatif

Voici la solution :

Sub bouton()
Dim ws As Worksheet
Dim cel As Range
Set ws = Worksheets(Worksheets("Paramètres").Range("B1").Value)
Set cel = Range(Worksheets("Paramètres").Range("D1").Value)
ouvrirfermer ws, cel
End Sub


Public Sub ouvrirfermer(ws As Worksheet, cel As Range)
Dim cel2 As Range
Dim i As Integer
Dim nb As Integer
Set ws = Worksheets("Paramètres")
Set cel = ws.Range("A35:A50")
i = 1

Set cel2 = cel(i)
nb = Workbooks.Count
While cel2.Value <> "FIN"
Workbooks.Open cel2.Value
Workbooks(nb + 1).Close
i = i + 1
Set cel2 = cel(i)
Wend
End Sub

lol c'était le cumul des 2 erreurs (le S de worksheet et l'affectation d'un classeur dans une feuille ^^
+ un problème avec un range auquel j'affectait une plage puis une cellule et à partir de la cellule reprendre une page :

dim cel as range
dim i as integer
i=1
set cel = cel(i)

blablabla

i = i + 1
set cel = cel(i) et ça ça marche pas lol

Merci de votre aide ^^
 
Dernière édition:

Minick

XLDnaute Impliqué
Re : [VBa] Argument Non Falcutatif

re,

Effectivement j'en etais arrive aux meme erreurs.

Maintenant je ne comprends pas le but de ton code, ni ton code en lui meme.

OK tu ouvres et ferme une serie de fichiers mais pourquoi passer des parametres si tu ne t'en sers pas.

Je te livre la ou j'en etais (Attention pas teste):

Code:
Sub bouton()
Dim ws As Worksheet
Dim cel As Range
Set ws = Worksheets(Worksheets("Paramètres").Range("B1").Value)
Set cel = Range(Worksheets("Paramètres").Range("D1").Value)
ouvrirfermer ws, cel
End Sub


Public Sub ouvrirfermer(ws As Worksheet, cel As Range)
Dim wb As Workbook
Dim i As Integer

i = 1

While cel(i).Value <> "FIN"
    Set wb = Workbooks.Open(cel(i).Value)
    wb.Close
    i = i + 1
Wend
End Sub

++
 

petithomme

XLDnaute Occasionnel
Re : [VBa] Argument Non Falcutatif

Lol effectivement j'avais utiliser ca :

Set ws = Worksheets("Paramètres")
Set cel = ws.Range("A35:A50")

pour faire un test et j'avais oublié de l'enlevé, je viens de le faire lol.

Mon code ouvre et ferme des classeurs pour mettre à jours les données dans CE classeur.

Tu comprends mieux ? :p
 

Discussions similaires

Statistiques des forums

Discussions
312 608
Messages
2 090 189
Membres
104 446
dernier inscrit
Phil A