IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Erreur de syntaxe [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 21
    Par défaut Erreur de syntaxe
    J'ai une erreur de syntax dans mon code mais je ne trouve vraiment pas ou elle se situe dans ma ligne qui commence par "Range("B" & j).Value = Main_formulaire.Controls("Nequipement" & i).Value..." J'ai mis la portion de code au complet pour que vous puissiez voir un peu ce que j'essais de faire.

    Je vous explique la partie suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B" & j).Value = Main_formulaire.Controls("Nequipement" & i).Value & " " & Main_formulaire.Controls("Nproduit" & i).Value & " " & Range(Range(Sheets("Produits").Find(Main_formulaire.Controls("Nproduit" & i).Value, LookIn:=xlValues)).Offset(0, 1)).Value
    Cette ligne dans mon code concatène plusieurs variable pour former une entré dans une cellule. La dernière partie de cette ligne est "supposé" pointer sur une cellule X et me retourner la valeur de la cellule qui se situe à sa droite. Je suis presque certain que c'est cette dernière partie qui cause l'Erreur: Erreur d'exécution 9: l'indice n'appartient pas à la sélection.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    SiteNo = 0 ' remet le compteur a 0
    i = 1
     
    While SiteNo <> 5
    'Permet de créer une entré par équipement sur le site associé
        While Main_formulaire.Controls("Nequipement" & i).Value <> ""
     
            If Main_formulaire.Controls("Nsite" & i).Value = Main_formulaire.Controls("Nom_du_site" & SiteNo).Value Then
            Dim Qty As Integer
            Dim ProdRef As Integer
            ProdRef = Main_formulaire.Controls("Nproduit" & i).ListIndex + 2
            MsgBox ProdRef
            Qty = Main_formulaire.Controls("Nqty" & i).Value
            Sheets(Main_formulaire.Controls("Nom_du_site" & SiteNo).Value).Select
            'lngDataRow = Main_formulaire.Controls("Nom_du_site" & SiteNo).ListIndex + 2
                If Main_formulaire.Controls("Nequipement" & i).Value = "Portable" _
                Or Main_formulaire.Controls("Nequipement" & i).Value = "Poste de table" _
                Or Main_formulaire.Controls("Nequipement" & i).Value = "Sans-Fil" _
                Or Main_formulaire.Controls("Nequipement" & i).Value = "Serveur" _
                Or Main_formulaire.Controls("Nequipement" & i).Value = "Serveur Purkinge" _
                Or Main_formulaire.Controls("Nequipement" & i).Value = "Tablet PC" _
                Or Main_formulaire.Controls("Nequipement" & i).Value = "Scanner" Then
                    While Qty <> 0
     
                        Range("B" & j).Value = Main_formulaire.Controls("Nequipement" & i).Value & " " & Main_formulaire.Controls("Nproduit" & i).Value & " " & Range(Range(Sheets("Produits").Find(Main_formulaire.Controls("Nproduit" & i).Value, LookIn:=xlValues)).Offset(0, 1)).Value
                        Qty = Qty - 1
                        j = j + 1
     
                    Wend
     
                Else
                End If
     
            Else
     
     
            End If
     
            i = i + 1
     
        Wend
        i = 1 ' reset des variables
        j = 36
        SiteNo = SiteNo + 1 ' Procede au prochain site
     
    Wend
    Tous les suggestions sont les bienvenues comme à l'habitude

    Merci

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    essaies quelque chose comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim c As Range
     
    Set c = Sheets("Produits").Range("A1:A100").Find(Main_formulaire.Controls("Nproduit" & i).Value, LookIn:=xlValues)
    If Not c Is Nothing Then Range("B" & j).Value = Main_formulaire.Controls("Nequipement" & i).Value & " " & Main_formulaire.Controls("Nproduit" & i).Value & " " & c.Offset(0, 1).Value

  3. #3
    Membre averti
    Inscrit en
    Novembre 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 21
    Par défaut
    En ajoutant un range définie ça fonctionne dans les 2 cas mais je préfère ta façon car je vais pouvoir réutiliser la variable comme bon me semble =o)

    j'ai trouvé ce qui causait l'erreur, la feuille produit ne ce trouve pas dans le classeur actif =o\

    Merci encore une fois Mercatog, si t'es pas un génie t'es pas loin!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Directives] Page blanche quand erreur de syntaxe
    Par syl2095 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/02/2006, 16h15
  2. [sql] erreur de syntaxe
    Par cmoa59 dans le forum JDBC
    Réponses: 14
    Dernier message: 03/05/2005, 12h41
  3. erreur de syntaxe en C++
    Par sergepmessa dans le forum C++
    Réponses: 6
    Dernier message: 11/03/2005, 19h15
  4. PHP SQL =>erreur de syntaxe (operateur absent)
    Par snipes dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 15h09
  5. erreur de syntaxe javascript dans ma page
    Par Oluha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2005, 15h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo