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 :

Problème de variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2013
    Messages : 5
    Par défaut Problème de variable
    Bonjour à tous.
    Je souhaiterais afficher le contenu de plusieurs zones combinées dans une colonne. Jusque là tout va bien j'utilise ce code pour chaque zone combiné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub Flèchegauche1_Cliquer()
        Dim lig As Long
        Dim x As Long
        x = Sheets("commande").Shapes("Drop Down 1").ControlFormat.ListIndex
        lig = Sheets("commande").Range("A1048576").End(xlUp).Row + 1
        Sheets("commande").Range("A" & lig) = Sheets("carte").Range("A" & x)
    Cependant, lorsque je veux modifier mon code pour regarder dans la colonne si le contenu de la zone combinée est déjà inscrit et dans ce cas qu'il rajoute 1 à la valeur de la cellule qui se trouve à côté (vous savez, un peu comme les bornes Mc Donald), le code m'affiche une jolie erreur "91" : Variable objet ou variable de bloc With non définie, à la ligne 9 :
    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
     
    Sub Flèchegauche1_Cliquer()
        Dim lig As Long
        Dim x As Long
        Dim l As String
        Dim z As String
        x = Sheets("commande").Shapes("Drop Down 1").ControlFormat.ListIndex
        lig = Sheets("commande").Range("A1048576").End(xlUp).Row + 1
        z = Sheets("carte").Range("A" & x).Value
        l = Worksheets("commande").Cells.Find(What:=z)
        If l <> "" Then
        l.Offset(0, 1) = l.Offset(0, 1) + 1
        Else
        Sheets("commande").Range("A" & lig) = Sheets("carte").Range("A" & x)
        End If
    End Sub
    Cependant lorsque je passe ma souris sur le "l" ça m'affiche bien l = "". J'ai essayé de changer le type de variable, de mettre un set, un with mais rien ne marche, c'est une autre erreur qui s'affiche.

    Alors je viens demander votre aide pour m'éviter de faire une depression ce samedi .

    Merci d'avance !

  2. #2
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    Salut

    Find marche avec ces paramètres:
    Quoi, Après, RechercherDans, Regarder, OrdreRecherche, SensRecherche, RespecterCasse, RespecterNbreOctets, FormatRecherche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MySheet.Range("A1:C1000").Find(what:=MonTexte, after:=Range("a1"), LookIn:=machaîne, searchorder:=xlByRows....)
    Certains sont facultatifs.
    La maîtrise de la technique est simple après un petit apprentissage.
    Set x=feuil1.range(x).find......
    Nothing si aucune Valeur.

    On l'utilise avec des conditions ou dans des boucles en fonction des besoins.
    Les conditions sont pour éviter l'erreur d'affectation .

    Ta variable l est une chaîne.
    je crois que tu voulais peut-etre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WorksheetFunction.Find(monTexteCherché,MonTexte,5)
    Toujours est-il que tu auras une erreur si aucune correspondance.

    si ton Shape est liée à une plage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     x = Sheets("commande").Shapes("Drop Down 1").ControlFormat.ListIndex
    te renvoi déjà l'index de l'élément selectionné dans la plage.
    Zéro si la valeur de la zone de liste n'éxiste pas.

    Pourquoi aller encore avec find?
    si tu veux obtenir le texte selectionné: l=ControlFormat.List(x)

    Cordialement.

Discussions similaires

  1. [VB.NET] Probléme de variable
    Par Silvia12 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 02/03/2005, 11h51
  2. [Debutant(e)]problème de variable d'environnement
    Par tolsam dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/08/2004, 19h08
  3. Problème de variable
    Par vp dans le forum Windows
    Réponses: 2
    Dernier message: 14/05/2004, 16h27
  4. [Débutant] Problème de variables
    Par bonnefr dans le forum SWT/JFace
    Réponses: 9
    Dernier message: 12/05/2004, 17h41
  5. [servlet]problème de variable jamais nulle
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/03/2004, 09h31

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