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 :

Boite de dialogue Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Par défaut Boite de dialogue Excel
    Bonjour,

    Me lançant dans la programmation excel, et ne connaissant pas trop les limites de ce logiciel, j'aimerai savoir s'il était possible au travers de formules diverses et d'une macro, l'enregistrement et le classement des données dans une plage correspondante.

    Ci joint un modèle, car les images sont plus parlantes.

    En somme, j'aimerai que lorsque je clique sur le bouton "classement" le nom et le numéro aille s'enregistrer automatiquement à la suite de la liste de la région correspondante.

    Via cette procédure j'aimerai simplifier au possible chaque nouvel enregistrement de personnes.

    Merci d'avance si vous pouvez m'aiguillonner sur une solution viable et pas trop complexe.

    A bientot

    Kamui

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Par défaut
    Bonjour,

    Est-il possible de mettre la zone de saisie en haut de la feuille?
    Après recopie dans le tableau, il est souhaitable de remettre à nul le nom est le numéro, OK ?
    Faut-il signaler les doublons ?

    PPz

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Par défaut
    Bonjour !

    Alors oui j'ai peut etre manqué de précision, donc je vais répondre aux zones d'ombres. La zone de saisie peut être mise n'importe ou.
    Il serait également préférable de pouvoir remettre à zéro après intégration de ladite donnée dans la colonne correspondante afin de pouvoir en ajouter d'autres.
    Les doublons sont à signaler mais ce n'est pas le plus important.

    Le problème étant que dans mon exemple je n'ai pas beaucoup de colonne, mais dans le fichier finale, il y en a environ 80...... d'ou la complexité de la formule.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Par défaut
    Bonsoir,

    Voici une macro qui devrait commencer à répondre à ton besoin.

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    Sub Transfert()
    '
    ' Lecture du nom à classer
        Sheets("Feuil1").Select
        Nom = Cells(1, 2)
        Region = Cells(2, 2)
        numero = Cells(3, 2)
        ' vérification
        MsgBox ("Nom : " & Nom & Chr(13) & _
                "Région : " & Region & Chr(13) & _
                "Numéro : " & numero & Chr(13))
     
    ' Boucle de recherche de la région
            Region_Col = 0
        For Com = 1 To 255 Step 2
            If Cells(10, Com) = Region Then Region_Col = Com
        Next
     
    ' Test de controle
        If Region_Col = 0 Then
        MsgBox ("ATTENTION  la région : " & Region & " n'existe pas dans le tableau")
        Exit Sub
        End If
     
    ' Boucle de recherche de la première ligne disponible
            Lig = 10
        Do
            Lig = Lig + 1
            If Cells(Lig, Region_Col) = "" Then
            ' Ecriture
                Cells(Lig, Region_Col) = Nom
                Cells(Lig, Region_Col + 1) = numero
            ' RAZ
            Cells(1, 2) = ""
            Cells(2, 2) = ""
            Cells(3, 2) = ""
            ' FIN
                Exit Do
            End If
        Loop
     
    End Sub

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 71
    Par défaut
    Merci beaucoup pour cette macro qui est parfaite !
    Néanmoins j'essaye de la comprendre et n'étant pas forcement un as dans le visual basic, je coule un peu.
    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ' Boucle de recherche de la région
            Region_Col = 0
        For Com = 1 To 255 Step 2
            If Cells(10, Com) = Region Then Region_Col = Com
        Next

    Cela veut il dire qu'il cherche le nom dans la colonne ayant le nom : "Region_Col" ?
    Dans ce cas la cette colonne doit être situer ou ?

    Au niveau de la boucle de recherche, si j'ai bien compris il cherche a partir du nom de de région la première cellule de la ligne vide.

    A ce moment la cela veut il dire que je dois mettre toutes mes données en ligne et non plus en colonne comme dans l'exemple ?

    Edit : tout fonctionne lorsque les colonnes s'arrêtent à U10, or j'ai des colonnes qui vont jusqu'a GP10. A ce momen la, j'excécute la macro pour que les données s'enregistrent dans D10 et on me dit qu'il ne trouve pas la région. Alors a quoi est ce du ?

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 75
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Par défaut
    Citation Envoyé par K4mu1 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ' Boucle de recherche de la région
            Region_Col = 0
        For Col = 1 To 255 Step 2
            If Cells(10, Col) = Region Then Region_Col = Col
        Next
    Tout d'abord il faut savoir que Cells(Lig,Col) désigne la cellule qui est à l'intersection de la ligne Lig et de la colonne Col.

    La signification de ce code est la suivante:
    On recherche la colonne contenant les informations liées à la Region, le résultat sera stocké dans la variable Region_Col
    Pour cela :
    - on initialise Region_Col à zéro
    - puis on balaye la ligne 10 de deux en deux depuis la première colonne jusqu'à la 255 eme colonne puisque les noms des régions sont stockés dans les colonnes impaires.
    - quand le contenu de la cellule Cells(10, Col) est égal à Region on a trouvé la bonne colonne que l'on mémorise.

    Citation Envoyé par K4mu1 Voir le message
    Edit : tout fonctionne lorsque les colonnes s'arrêtent à U10, or j'ai des colonnes qui vont jusqu'a GP10. A ce momen la, j'excécute la macro pour que les données s'enregistrent dans D10 et on me dit qu'il ne trouve pas la région. Alors a quoi est ce du ?
    Cela signifie que tu dois être dans une version d'Excel qui autorise plus de 255 colonnes, tu remplace donc 255 par un nombre impair plus grand 499 par exemple

    A+

Discussions similaires

  1. Afficher une boite de dialogue Excel via une macro
    Par SebastienM dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 28/01/2009, 10h36
  2. Afficher une boite de dialogue Excel via une macro
    Par SebastienM dans le forum Excel
    Réponses: 1
    Dernier message: 27/01/2009, 18h52
  3. boite de dialogue excel automatique
    Par marinef dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/07/2008, 14h47
  4. Comment utiliser une boite de dialogue Excel ?
    Par mamou30 dans le forum Delphi
    Réponses: 6
    Dernier message: 18/06/2007, 01h24
  5. [VBA] Paramètres boite de dialogue Excel
    Par seb.kepka dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/01/2006, 12h19

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