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 :

Aide débutant instruction VBA tableau Excell


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Aide débutant instruction VBA tableau Excell
    Bonjour,

    Je souhaite obtenir la valeur d'une cellule d'un tableau à partir de 3 informations

    Du type :


    .......................critère1............A ..............B..............C
    critère2 ..........critère 3
    1........................M.................bon......mauvais........moyen
    2...........................................bon..........bon............bon
    3........................M...............moyen.......bon..........mauvais

    Je dois donc saisir (si possible à partir d'un userform) les informations critère 1 et critère2 dans un textbox et critère 3 dans un checkbox.
    Puis j'aimerai obtenir dans un messagebox : bon

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Je ne comprends pas ton tableau...
    Pour localiser une valeur en Ligne /Colonne, tu peux par exemple définir un objet Range qui selon un index et une boucle For Each/Next peut te renvoyer ce que tu cherches...
    T'es t-il possible de mettre une image de ton tableau Excel ou être + explicite pour + de précision concernant tes critères...?

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut e
    tout d'abord merci de ta réponse

    JE vais essayer d'etre plus clair.

    sur la ligne 1 j'ai une série d'age
    sur la collone A j'ai une série de métier
    sur la collone B fille ou garçon

    à l'intérieur du tableau des données statistiques

    Je souhaite avec un userform, en lui indiquant age, metier et sexe obtenir dans un message box la donnée statistique qui y correspond (ou si aucune données correspondante avoir une réponse du style inexistant)

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Pour t'aider, j'aurais besoin d'un peu plus d'info.

    Y a-t-il garçon et fille pour chaque métier?

    La liste des métiers est-elle figée ou peut-elle évoluer?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Tu peux alors partir de cette base de départ:
    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
     
    Function QuelleCorrespondance(ByVal Age As Integer, ByVal Metier As String, ByVal Sexe As String) As String
    Dim lngDerniereLigne As Long
    Dim intDerniereColonne As Integer
    Dim oPlage As Range
    Dim oMetier As Range
    Dim I As Integer
    Dim strCorrespondance As String
     
      Range("C1").Select
      intDerniereColonne = ActiveCell.SpecialCells(xlCellTypeLastCell).Column
      Range("A2").Select
      lngDerniereLigne = ActiveCell.SpecialCells(xlCellTypeLastCell).Row
     
      Set oPlage = Range(Cells(2, 1), Cells(lngDerniereLigne, 1))
      For Each oMetier In oPlage
        If oMetier.Value = Metier Then
          If oMetier.Offset(0, 1).Value = Sexe Then
            For I = oMetier.Column To intDerniereColonne
              If Cells(1, I).Value = Age Then
                strCorrespondance = oMetier.Offset(0, I - 1).Value
              End If
            Next
          End If
        End If
      Next
      If Len(strCorrespondance) = 0 Then
        strCorrespondance = "Aucune correspondance"
      End If
      QuelleCorrespondance = strCorrespondance
    End Function
     
    Sub cmdObtenirValeur()
    Dim intAge As Integer, strMetier As String, strSexe As String
     
      intAge = txtAge
      strMetier = txtMetier
      strSexe = txtSexe
     
      MsgBox QuelleCorrespondance(intAge, strMetier, strSexe)
    End Sub
    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2005
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 3
    Points : 1
    Points
    1
    Par défaut donc
    La ligne B indique si on parle du métier fille ou du métier garçon, et chaque métier n'a pas forcement l'un et l'autre.

    C'est une liste figé non évolutive.

  7. #7
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 123
    Points : 12 169
    Points
    12 169
    Billets dans le blog
    5
    Par défaut
    Petit correction : "Omission" d'un Exit For

    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
    Function QuelleCorrespondance(ByVal Age As Integer, ByVal Metier As String, ByVal Sexe As String) As String 
    Dim lngDerniereLigne As Long 
    Dim intDerniereColonne As Integer 
    Dim oPlage As Range 
    Dim oMetier As Range 
    Dim I As Integer 
    Dim strCorrespondance As String 
     
      Range("C1").Select 
      intDerniereColonne = ActiveCell.SpecialCells(xlCellTypeLastCell).Column 
      Range("A2").Select 
      lngDerniereLigne = ActiveCell.SpecialCells(xlCellTypeLastCell).Row 
     
      Set oPlage = Range(Cells(2, 1), Cells(lngDerniereLigne, 1)) 
      For Each oMetier In oPlage 
        If oMetier.Value = Metier Then 
          If oMetier.Offset(0, 1).Value = Sexe Then 
            For I = oMetier.Column To intDerniereColonne 
              If Cells(1, I).Value = Age Then 
                strCorrespondance = oMetier.Offset(0, I - 1).Value
                Exit For
              End If 
            Next 
          End If 
        End If 
      Next 
      If Len(strCorrespondance) = 0 Then 
        strCorrespondance = "Aucune correspondance" 
      End If 
      QuelleCorrespondance = strCorrespondance 
      Set oPlage = Nothing
    End Function
    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0
    *** Je recherche des profils (2 ans min.) Java EE, Fullstack, Front, .Net, Mobile... pour CDI ***

Discussions similaires

  1. [XL-2003] Aide sur code VBA sur Excel
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/03/2013, 17h14
  2. [VBA-E] connaitre le nombre de ligne dans un tableau excel
    Par bigbarbe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/04/2006, 10h03
  3. [VBA] insérer un tableau Excel dans un formulaire
    Par Alexj51 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 08/02/2006, 13h15
  4. [VBA-E]créer un tableau Excel en vba
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 19/01/2006, 16h06
  5. débutant en VBA je n'arrive pas à finir ma macro excel
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/01/2005, 12h20

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