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étecter des cellules grace à leurs contenus puis copier-coller la ligne des cellules concerné dans un tableau [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 35
    Points : 20
    Points
    20
    Par défaut Détecter des cellules grace à leurs contenus puis copier-coller la ligne des cellules concerné dans un tableau
    Bonjour Tout le monde,

    Je suis actuellement en train de travailler sur un programme qui a pour but de lister des pannes sur des machines sélectionnées par l'opérateur a partir d'un tableau regroupant toute les pannes de toutes les machines de l'usine.

    Un exemple : l'opérateur sélectionne la machine "presse" dans le menu déroulant machine (ComboBoxMachine), et la partie de la machine (Organe) "CN" dans le menu déroulant Organe (ComboBoxOrgane) pour avoir toute les pannes qui les concernes.

    Le programme va donc aller rechercher toutes les rangées de cellules (en ligne) dans le tableau pour les transférer sur un nouveau tableau.

    L'ennui c'est que je sait trop comment coder le programme de façon à ce que Excel "comprenne" qu'il faut donc copier la rangée de cellule (au nombre de 5) comprenant la cellule "presse" et la cellule "CN",

    puis la coller dans une nouvelle zone et en répétant l'opération autant de fois que le programme rencontre les rangées de cellules dans la zone de recherche remplissant les deux conditions.

    Je vous donne le code que j'ai fait (totalement incomplet et surement bourré de fautes) :

    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
    Private Sub CreationTableau_Click()
     
    ' comme sa je suis sur que dès que je lance le programme la zone est vide
     
    Range("$A$50:$G$1000").Select
        Selection.ClearContents
        Range("$A$50:$G$1000").Clear
     
        Dim TableauRegroupementDefaut As Range ' a savoir le nouveau tableau qui va recevoir les cellules
        Dim ZoneRecherche As Range ' zone de détection des cellules
        Dim NomMachine As String 
        Dim NomOrgane As String
     
        NomMachine = ComboBoxMachine.ListIndex  ' NomMachine prendras le libellé qui a marquer sur la sélection du comboBox à savoir "presse" 
        NomOrgane = ComboBoxOrgane.ListIndex  ' Idem que pour NomMachine sauf que cela concerne "CN"
     
     'je me suis laissé une marge jusqu a 1000
     
    Set ZoneRecherche = Sheets("Feuil2").Range("$G$50:$K$1000")
        Set TableauRegroupementDefaut = ZoneRecherche.Find(NomMachine, x1Value, x1Part) ' code de détection de la cellule (si je ne me suis pas trompé)
        Set TableauRegroupementDefaut = ZoneRecherche.Find(NomOrgane, x1Value, x1Part) ' même chose
     
     ' a partir de la je ne sais pas comment faire pour qu'il puisse détecter toute les rangées de cellules avec les conditions fixées par l'opérateur
     
     ' ni comment faire pour lui demander de copier les cellules à coté de celle qui remplisses les conditions
     
    End Sub
    Je joint aussi le tableau de départ pour une meilleur visualisation.Nom : tableau consigne tronqué.png
Affichages : 239
Taille : 29,5 Ko

    J'ai oublier de dire aussi que le tableau de départ est un tableau dynamique,
    du coup je ne veux pas utiliser la fonction range sinon le logiciel pourrais copier coller les mauvaise infos si jamais les cellules changeais de place du a par exemple, un ajout ou un retrait de donnée,
    ou un tri par ordre alphabétique qui repositionnerais les cellules.

  2. #2
    Expert éminent sénior


    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
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonjour,

    et un simple filtre ? Ruban -Onglet Données / Filtrer

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    Le but est de rendre l'interface automatique et pas que l'opérateur fasse lui même la sélection directement sur le tableau. (C'est vrai que l'idée est totalement stupide mais c'est un peu plus esthétique). Après est ce possible de coder un filtre?

    Le problème est aussi que le filtre prend en compte chaque texte dans une cellule; Si on reprend l'exemple de "CN" l'opérateur devras aller chercher d'abord "communication CN" puis "CN n°2"; dans l'exemple ici cela fait juste "se compliquer la vie pour rien" vu qu'il n'y a que 5 ligne mais dans les fait le tableau attend les 800 lignes et si l'opérateur vas devoir cocher toutes les cases dans le filtres qui mentionne la CN, cela ne vas pas être trop "réactif".

  4. #4
    Expert éminent sénior


    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
    Points : 20 038
    Points
    20 038
    Par défaut
    re,

    c'est surtout un problème de formation ... tu peu très bien filtrer sur "contient : CN"

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 35
    Points : 20
    Points
    20
    Par défaut
    a vrai dire ma formation est surtout basé sur la mécanique, on a étudié excel juste une moitié de semestre c'est pas beaucoup....

    Mais en tout cas merci de m'avoir donner cette solution simple... Qui fait que les deux semaine que j'ai passer à faire l'autre partie du programme ne sert plus a rien.

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

Discussions similaires

  1. [XL-2010] En VBA, copier des cellules et les coller dans un nouveau classeur
    Par Cgoldy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/02/2013, 18h24
  2. Réponses: 2
    Dernier message: 22/03/2009, 21h06
  3. Réponses: 3
    Dernier message: 09/09/2006, 13h24
  4. Réponses: 5
    Dernier message: 04/07/2006, 11h29
  5. Réponses: 5
    Dernier message: 07/01/2006, 16h55

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