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 :

VBA concatener, erreurs variable non définie ou qualificateur incorrect [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    logisticien
    Inscrit en
    Août 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : logisticien

    Informations forums :
    Inscription : Août 2014
    Messages : 28
    Par défaut VBA concatener, erreurs variable non définie ou qualificateur incorrect
    Bonjour,

    Je souhaite éliminer des lignes d’un tableau Excel (version 2007) en fonction de 5 données et pour chacune j’ai au moins une condition du type = ou <> ou < à tester, souvent deux (par exemple je peux vouloir être entre 2 valeurs etc… ). Conclusion : usine à gaz.
    Je pense utiliser la concatenation puis la fonction RechercheV afin de réduire le nombre de conditions à contrôler. En effet, pour l’essentiel, je dois supprimer les lignes dont toutes les données sauf une sont identiques, donc je fais la concatenation sur sur 4 données, ensuite je recheche dans mon tableau la première ligne trouvée, j’applique ma condition et si VRAI je dois alors supprimer les deux lignes.
    Le code ci-dessous me renvoie les messages d’erreur suivants :
    sans la ligne n°2 « Dim Cell As String », message « Erreur de compilation - Variable non définie »
    et si je déclare « Dim Cell As String » :
    message « Erreur de compilation – Qualificateur incorrect »
    Je ne vois pas pourquoi il y a le message variable non définie car Cell est un objet, pas une variable.

    Ci-joint le fichier Excel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Tri_par_concatenation()
        Dim Cell As String
        Range("A2").Select
        Do While ActiveCell <> ""
        If ActiveCell <> "" Then
        Cells(Cell.Row, "S") = Cells(Cell.Row, "B") & Cells(Cell.Row, "H") & Cells(Cell.Row, "L") & Cells(Cell.Row, "H")
        ActiveCell.Offset(1, 0).Select
        End If
        Loop
    End Sub
    Merci de votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)

  3. #3
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    un peu de révision sur les variables : http://silkyroad.developpez.com/VBA/LesVariables/#LII-K ..

    "Cell" n'est pas une variable "standard" d'Excel il faut donc que tu la déclare et c'est une variable de type Object .... ou Range..

    n'oublie pas qu'on doit aussi affecter une variable objet à un objet grâce par exemple à une instruction Set avant de l'utiliser ...


    pour finir pour ton code c'est rarement une bonne idée d'utiliser activeCell et Select tu n'as pas besoin de déplacer ton curseur pour accéder à une cellule .

    tiens sans tester en supprimant juste ActiveCell de ton code cela pourrais donner :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Tri_par_concatenation()
        Dim Cell As Range
        Set Cell = Range("A2") ' Arf !! Attention est tu sur d'être sur la bonne feuille au lancement de ton code ?
        Do While Cell <> ""
            Cell.EntireRow.Cells(1, "S") = Cell.EntireRow.Cells(1, "B") & Cell.EntireRow.Cells(1, "H") & Cell.EntireRow.Cells(1, "L") & Cell.EntireRow.Cells(1, "H")
            Set Cell = Cell.Offset(1, 0)
        Loop
    End Sub

  4. #4
    Membre averti
    Homme Profil pro
    logisticien
    Inscrit en
    Août 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : logisticien

    Informations forums :
    Inscription : Août 2014
    Messages : 28
    Par défaut
    Rdurupt,
    Merci pour votre réponse super rapide. J’ai donc regardé le code que vous m’avez conseillé mais je dois dire que je n’y ai pas compris grand-chose, je n’ai que quelques notions rudimentaires de VBA et j’ignore la plupart des termes (j’emploie terme faute de savoir exactement de quoi il s’agit) que j’y ai vu.
    Je vais donc devoir faire quelques (longues) recherches avant de pouvoir le comprendre. En outre, sans lien entre un écran et le code c’est encore plus difficile. Cependant, j’ai bien compris que ce code est économe en ressource et j’ai lu que Function pouvait être sollicité à n’importe quel moment dans un programme, ce qui répond à mon besoin. Je devrais donc pouvoir m’inspirer de ce code... probablement avec de nouvelles questions avant d’en arriver là.

    bbil,
    Votre code fonctionne parfaitement. Je viens de jeter un coup d’œil au tutoriel et ça correspond bien à mes attentes et besoins. Merci.

    Merci encore à vous deux pour vos conseils.

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

Discussions similaires

  1. Erreur "Variable non définie"
    Par ralba dans le forum jQuery
    Réponses: 5
    Dernier message: 16/05/2014, 15h59
  2. Excel VBA PB de variable non définie (=vide)
    Par elhelios dans le forum Excel
    Réponses: 1
    Dernier message: 27/02/2012, 10h48
  3. Erreur de compilation : Variable non définie
    Par Smallstone dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 12/07/2011, 08h32
  4. erreur compilation: variable non défini
    Par ngouagme dans le forum Langage
    Réponses: 8
    Dernier message: 07/07/2010, 15h38
  5. [AC-2003] Erreur de variable non définie
    Par piercleo dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/01/2010, 16h02

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