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 :

Gestion de tableau en VBA


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
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 13
    Par défaut Gestion de tableau en VBA
    Bonjour,

    J'aurais une petite question à vous posez concernant la gestion de tableau sous vba.

    Voilà, j'ai un tableau comprenant l'ensemble des résultats d'une recherche multi-terme que j'ai codé.

    Par exemple:

    indice 0: moteur
    indice 1: moteur Mec
    indice 2: moteur simplifié ...

    Je code actuellement une fonction permettant de supprimer des termes spécifiques de mon tableau. Admettons pour cet exemple que je supprime "Moteur Mec".

    Comment faire pour retrier mon tableau ou plutôt le réajuster ?

    Dans cet exemple:

    indice 0: moteur
    indice 1:
    indice 2: moteur simplifié ...

    devient:

    indice 0: moteur
    indice 1: moteur simplifié ...

    Merci pour votre aide.

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Voilà, j'ai un tableau comprenant l'ensemble des résultats d'une recherche multi-terme que j'ai codé.
    A moins d'être atteint de cécité, en guise de code je ne vois rien.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 13
    Par défaut
    Cétait juste une partie introductive, ma question porte sur le fait de supprimer une case de mon tableau contenant des String et de réordonner le tableau par la suite.

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Cétait juste une partie introductive, ma question porte sur le fait de supprimer une case de mon tableau contenant des String et de réordonner le tableau par la suite.
    J'ai beau lire et relire cette partie "introductive", j'ai du mal a comprendre mais sûrement qu'un autre intervenant plus subtil que moi aura deviner le sens de ta question.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut


    Bonjour, bonjour !

    Au lieu d'un "tableau" (super, quelle précision ! ) utiliser une collection ou un dictionnaire … (cf aide VBA interne !)

    Voici toute l'aide que l'on peut apporter sans voir de code posté et balisé ! (cf règles de ce forum)


    ______________________________________________________________________________________________________
    Je suis Paris, Charlie, …

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Septembre 2013
    Messages
    1 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 1 369
    Par défaut
    Bonsoir,

    Suppression d'une ligne d'un Array() 2D en fonction d'une clé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub SuppressionLignesCle()
       a = [A2:D7].Value
       Dim tmp(): ReDim tmp(1 To UBound(a))
       For i = LBound(a) To UBound(a)
         If a(i, 3) <> "Issy" Then n = n + 1: tmp(n) = i
       Next
       ReDim Preserve tmp(1 To n)
       a = Application.Index(a, Application.Transpose(tmp), _
          Application.Transpose(Evaluate("Row(1:" & UBound(a, 2) & ")")))
      [g2].Resize(UBound(a), UBound(a, 2)) = a
    End Sub
    Array 2D encapsulé dans un dictionnaire

    La suppression d'une ligne devient très simple.

    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
     
    Sub ArrayEncapsuléDico()
      Set d = CreateObject("Scripting.Dictionary")
      a = [A2:C5]
      For i = LBound(a) To UBound(a)
        d.Item(a(i, 1)) = Array(a(i, 1), a(i, 2), a(i, 3))
      Next i
      '--accès à la ville de Durand
      [k2] = d("Durand")(1)
      '---suppression d'une ligne
      d.Remove ("Espinasse")
      For c = 1 To 3
        [F2].Offset(, c - 1).Resize(d.Count, 1) = Application.Index(d.items, , c)
      Next c
    End Sub
    Boisgontier
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Gestion de tableau en VBA
    Par lilian65 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/02/2009, 17h37
  2. Gestion de fichier en VBA. (bis)
    Par monf29 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/06/2007, 11h24
  3. Gestion de fichier en VBA.
    Par monf29 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/06/2007, 20h08
  4. [VBA-E] Comment créer un tableau sous vba excel
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/01/2007, 09h52
  5. [Tableau][Base]Création d'une classe de gestion de tableau
    Par mariogarcia dans le forum Collection et Stream
    Réponses: 40
    Dernier message: 05/11/2005, 01h19

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