Vba: function: le premier argument ne prend pas de valeur
Fermé
bast_dem
Messages postés
4
Date d'inscription
lundi 8 avril 2013
Statut
Membre
Dernière intervention
9 avril 2013
-
8 avril 2013 à 16:02
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 9 avril 2013 à 12:56
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 9 avril 2013 à 12:56
A voir également:
- Vba: function: le premier argument ne prend pas de valeur
- Excel compter cellule couleur sans vba - Guide
- Mkdir vba ✓ - Forum VB / VBA
- Vba range avec variable ✓ - Forum VB / VBA
- L'indice n'appartient pas à la sélection vba ✓ - Forum Programmation
- Autofill vba ✓ - Forum Excel
5 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
8 avril 2013 à 16:44
8 avril 2013 à 16:44
Bonjour,
Si tu mettais du code plus explicite ont pourrait peut-être comprendre.
A+
Si tu mettais du code plus explicite ont pourrait peut-être comprendre.
A+
bast_dem
Messages postés
4
Date d'inscription
lundi 8 avril 2013
Statut
Membre
Dernière intervention
9 avril 2013
8 avril 2013 à 17:23
8 avril 2013 à 17:23
Sub testCompletBras()
[...]
TabRes_bras_VerifContr = VerificationContrainte(NbreNiv1, ligne1, colonne1)
[...]
End Sub
Function VerificationContrainte(ByVal NbreNiv As Integer, ByVal ligne As Integer, ByVal colonne As Integer) as variant
[...]
End Function
Ma procédure appelle la fonction puis erreur:
Quand je mets le pointeur sur NbreNiv1 j'ai une valeur ( ex: 4 ), idem pour ligne1 et colonne1: normal
ligne et colonne repennent les valeurs de ligne1 et colonne1: normal
Mais NbreNiv ne reprend pas la valeur de NbreNiv1 !
Quand je change l'ordre de mes arguments c'est toujours l'argument en première position qui ne récupère pas la valeur de l'argument de l'appel !
Tout se passe dans le même module, les variables sont bien public.
je sais pas si c'est plus clair !?
Merci d'avance
[...]
TabRes_bras_VerifContr = VerificationContrainte(NbreNiv1, ligne1, colonne1)
[...]
End Sub
Function VerificationContrainte(ByVal NbreNiv As Integer, ByVal ligne As Integer, ByVal colonne As Integer) as variant
[...]
End Function
Ma procédure appelle la fonction puis erreur:
Quand je mets le pointeur sur NbreNiv1 j'ai une valeur ( ex: 4 ), idem pour ligne1 et colonne1: normal
ligne et colonne repennent les valeurs de ligne1 et colonne1: normal
Mais NbreNiv ne reprend pas la valeur de NbreNiv1 !
Quand je change l'ordre de mes arguments c'est toujours l'argument en première position qui ne récupère pas la valeur de l'argument de l'appel !
Tout se passe dans le même module, les variables sont bien public.
je sais pas si c'est plus clair !?
Merci d'avance
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
8 avril 2013 à 20:45
8 avril 2013 à 20:45
Tu a fait copier/Coller pour le code ou tu l'a recopier manuellement ?
Parce que normalement, si tu à fais copier/Coller le -> as variant devrait être As Variant, avec des majuscules.
Si tout est bien comme tu dis, l'erreur est forcément ailleurs.
Met un point d'arrêt sur la toute première ligne de code de la fonction.
Et regarde ce que tu à dans NbreNiv
Tu dis.. Erreur ? mais quel genre d'erreur ? ou ? et quel en est le libellé.
Parce que normalement, si tu à fais copier/Coller le -> as variant devrait être As Variant, avec des majuscules.
Si tout est bien comme tu dis, l'erreur est forcément ailleurs.
Met un point d'arrêt sur la toute première ligne de code de la fonction.
Et regarde ce que tu à dans NbreNiv
Tu dis.. Erreur ? mais quel genre d'erreur ? ou ? et quel en est le libellé.
bast_dem
Messages postés
4
Date d'inscription
lundi 8 avril 2013
Statut
Membre
Dernière intervention
9 avril 2013
9 avril 2013 à 08:53
9 avril 2013 à 08:53
Bonjour !
NbreNiv est vide.
C'est l' "erreur 9: l'indice n'appartient pas à la selection"
Mais comme tu peux le voir dans le reste du code que je te mets en dessous, cette erreur apparait parce que NbreNiv est vide: quand je redimensionne mon tableau, j'ai une des dimensions = (NbreNiv -1) qui donne -1 vu que NbreDiv est vide ! L'erreur apparait à cause du -1, mais pas à cause du NbreDiv vide ...
Je te met le reste du code, bon courage avec mes variables ...
___________________
Public TabResBras() As Variant
Public NbreNiv1 As Integer
Public NbreNivSansEmbase As Integer
Public Nbre_Bras As Integer
___________________
Sub testCompletBras()
Nbre_Bras = Sheets("bras").Range("A6").End(xlDown).Row - 5
Nbre_colonne = Sheets("colonnes").Range("A6").End(xlDown).Row - 1
tabres_bras1_verifContr = VerificationContrainte(NbreNiv1, ligLgBras1, colLgBras1)
[...]
End Sub
___________________
Function VerificationContrainte(ByVal NbreNiv As Integer, ByVal ligLgBras As Integer, ByVal colLgBras As Integer) As Variant
ContrainteElasticite = Sheets("cste").Cells(1, 2)
Nbre_Bras = Sheets("bras").Range("A6").End(xlDown).Row - 5
NbreNivSansEmbase = NbreNiv - 1
ReDim TabResBras(NbreNivSansEmbase, Nbre_Bras)
[...]
End Function
L'erreur apparait à cause du NbreNivSansEmbase=-1
Si j'inverse NbreNiv avec ligLgBras, c'est ligLgBras qui sera vide ... Je comprends pas ^^
Merci de votre aide!
NbreNiv est vide.
C'est l' "erreur 9: l'indice n'appartient pas à la selection"
Mais comme tu peux le voir dans le reste du code que je te mets en dessous, cette erreur apparait parce que NbreNiv est vide: quand je redimensionne mon tableau, j'ai une des dimensions = (NbreNiv -1) qui donne -1 vu que NbreDiv est vide ! L'erreur apparait à cause du -1, mais pas à cause du NbreDiv vide ...
Je te met le reste du code, bon courage avec mes variables ...
___________________
Public TabResBras() As Variant
Public NbreNiv1 As Integer
Public NbreNivSansEmbase As Integer
Public Nbre_Bras As Integer
___________________
Sub testCompletBras()
Nbre_Bras = Sheets("bras").Range("A6").End(xlDown).Row - 5
Nbre_colonne = Sheets("colonnes").Range("A6").End(xlDown).Row - 1
tabres_bras1_verifContr = VerificationContrainte(NbreNiv1, ligLgBras1, colLgBras1)
[...]
End Sub
___________________
Function VerificationContrainte(ByVal NbreNiv As Integer, ByVal ligLgBras As Integer, ByVal colLgBras As Integer) As Variant
ContrainteElasticite = Sheets("cste").Cells(1, 2)
Nbre_Bras = Sheets("bras").Range("A6").End(xlDown).Row - 5
NbreNivSansEmbase = NbreNiv - 1
ReDim TabResBras(NbreNivSansEmbase, Nbre_Bras)
[...]
End Function
L'erreur apparait à cause du NbreNivSansEmbase=-1
Si j'inverse NbreNiv avec ligLgBras, c'est ligLgBras qui sera vide ... Je comprends pas ^^
Merci de votre aide!
bast_dem
Messages postés
4
Date d'inscription
lundi 8 avril 2013
Statut
Membre
Dernière intervention
9 avril 2013
9 avril 2013 à 09:14
9 avril 2013 à 09:14
Après nouveaux tests, si j'inverse NbreNiv avec ligLgBras, ça marche ... J'ai du me planter quand j'ai tenté la première fois! Cela dit ça n'explique pas le problème !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
9 avril 2013 à 12:56
9 avril 2013 à 12:56
Toujours difficile de cerner le prob avec des bribes de codes.
Ceci dit, je ne vois pas où tu assigne une valeur à NbreNiv ?
Si tu ne trouve pas tu pourrais mettre ton classeur à disposition ? éventuellement en MP ?
A+
Ceci dit, je ne vois pas où tu assigne une valeur à NbreNiv ?
Si tu ne trouve pas tu pourrais mettre ton classeur à disposition ? éventuellement en MP ?
A+