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 :

Définition d'une plage variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut Définition d'une plage variable
    Bonjour,

    Grace aux excellents tutos de BOISGONTIER, j'essaye de réutiliser son code de recherche passant par Dictionnary, car très rapide et conservant les données en mémoire...,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Set mondico = CreateObject("scripting.dictionary")
      Sheets("R70").Select
      a = [A1:AA10000]
      For i = 1 To 10000
        CléBase = a(i, 27)
        Clé = CléBase
        indice = 1
        Do While mondico.exists(Clé)
          Clé = CléBase & indice
          indice = indice + 1
        Loop
        mondico(Clé) = i
      Next i
    mais j'ai un problème avec la déclaration de la plage, dans mon exemple, j'ai 10000 lignes, mais suivant le fichier utilisé (je l'importe), il peut y avoir 10000 lignes, 5000, 7000, etc....

    et donc je ne sais pas comment faire pour déclarer "a",

    à moins de le modifier à chaque fois, mais c'est vraiment du bidouillage...
    J'ai essayé avec DernièreLigne, mais cela ne fonctionne pas.....

    Une petite aide ?

    En vous remerciant,

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    J'ai essayé avec DernièreLigne, mais cela ne fonctionne pas.....

    Une petite aide ?
    montre ce que tu as essayé.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut
    Bonjour et merci,

    J'ai essayé sous plusieurs forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a=[A1:A & DernièreLigne ]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a=["A1:A" & DernièreLigne ]
    Marche pas, mais je me doute que les "[" définissent le tableau et donc mon "écriture" ne peut pas fonctionner...d'où le besoin d'aide....
    Merci

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    on en est là aux rudiments de chez rudiment de VBA ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = range("A1:A" & derniereligne)
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = Range(Cells(1, 1), Cells(derniereligne, 1))

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut
    Merci unparia,

    Ne connaissant pas le "scripting dictionary", je n'ai même pas osé....pensant que les "[" étaient indispensables.....

    Effectivement ce sont les bases.....j'ai essayé, mais finalement le dictionary est très rapide une fois que le "a" est défini, par contre, cela met beaucoup de temps avant de pouvoir définir les valeurs....

    Je dois faire des recherches dans 27 colonnes et 10000 lignes et je n'arrive pas à trouver un code qui le fasse très rapidement..donc petite galère....Mais c'est une autre histoire....

    Merci pour votre aide

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Ne connaissant pas le "scripting dictionary", je n'ai même pas osé....pensant que les "[" étaient indispensables....
    Euh ... je ne vois pas ce que vient faire dans cette affaire un "scripting dictionary" ...
    Il ne s'agit que de différentes formes possibles de notation d'un objet Range.

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

Discussions similaires

  1. [XL-2003] Problème avec la définition d'une plage de données
    Par coklin dans le forum Excel
    Réponses: 1
    Dernier message: 15/01/2010, 19h18
  2. Somme sur une plage variable
    Par Sarune dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/08/2008, 14h40
  3. Appliquer une formule à une plage variable
    Par sophiefag dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/04/2008, 00h27
  4. Somme sur une plage variable
    Par mhamedbj dans le forum Excel
    Réponses: 2
    Dernier message: 29/02/2008, 16h56
  5. contenu d'une variable définit par une autre variable
    Par PuppeT mAsTer dans le forum Langage
    Réponses: 4
    Dernier message: 04/07/2006, 20h32

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