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 programmation vba


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Points : 6
    Points
    6
    Par défaut aide programmation vba
    Bonjour, je suis débutant en vba et j'aurais grand besoin d'aide.

    J'ai créé un tableau Excel de 200 lignes et 3 colonnes. En fait in faudrait que pour un certaine valeur donnée dans la colonne 1 (par exemple 5) et un autre valeur donnée dans la colonne 2 (par exemple 15), le programme me donne la valeur correspondante de la colonne 3. Je pense qu'il faut utiliser des boucles for mais je ne sais pas faire.

    Je vous remercie d'avance.

    Cordialement.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Bonjour,

    A main levée et selon ton exemple ça donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test()
     
    For i = 1 To 200
        If Cells(i, 1).Value = "5" Then
            If Cells(i, 2).Value = "15" Then
                MsgBox Cells(i, 3).Value
            End If
        End If
    Next
     
    End Sub
    Et voilà !

    bonne chance
    DeaD

  3. #3
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,

    tu peux peut-etre adapter un code dans ce gout là, avec les éléments que tu donnes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    dim dl as integer, x as integer
    dl = range("a" & rows.count).end(xlup).row
     
    for x = 1 to dl
    if range("a" & x) = 5 and range("b" & x) = 15 then
    msgbox range("c" & x).value
    end if
    next x
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Bonjour et bienvenue,
    Désolé mais c'est pas très clair,
    Une valeur donnée? comment indique tu la valeurs de ta colonne 1 et 2 dans une boite de dialogue, dans des celulles ?
    De même comment veux tu retrouver le résultat, dans une celulle, dans une boite de dialogue,...
    Est ce que chaque ligne est unique, ou y a t'il des doublons ?
    Il faut un peu plus d'explications pour pouvoir t'aider.

    Edit: Bah il y en a des plus perspicaces que moi
    N'oubliez pas le si votre problème est solutionné.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Voila en fait les deux valeurs données sont entrées dans une boite de dialogue que j'ai créé. Et j'aimerais que la réponse me soit donnée sur une feuille Excel dans une cellule.

    Merci.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Pour avoir la réponse donnée dans la feuille BlaBla disons dans la cellule A1, tu remplaces
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Cells(i, 3).Value
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("BlaBla").Range("A1").Value = Cells(i, 3).Value
    Est-ce que tu souhaites ?
    DeaD

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    oui, c'est ce que je souhaite. Mais est-ce que le code donné ci-dessus est correct si j'utilise une boite de dialogue ? Merci.

  8. #8
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    si je reprends mon exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    dim dl as integer, x as integer, v2 as string, v1 as string
    v1 = inputbox("valeur1","entrez la valeur")
    v2 = inputbox("valeur2","entrez la valeur")
    dl = range("a" & rows.count).end(xlup).row
     
    for x = 1 to dl
    if range("a" & x) = v1 and range("b" & x) = v2 then
    Worksheets("BlaBla").Range("A1").Value = range("c" & x).Value
    end if
    next x
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Re,

    Prends le dernier code de casefayere (salutations ! ), c'est le plus optimisé.

    Bonne continuation
    DeaD

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Bonjour,

    Tu as PLEIN de sujets traitant de ce type de traitements sur le forum, sur le net, dans les FAQ ou dans les Tutos... Tu n'as qu'à te servir...

    Pour les pistes, il faut déjà savoir où tu as rentré tes valeurs. Dans des InputBox, dans des cellules ?

    Peu importe, que ce soit attribué par une InputBox ou une cellule, admettons que tu passes la valeur de la colonne dans une variable "col" et celle de la valeur recherchée dans "val".

    Il ne te reste plus qu'à faire une boucle sur ta colonne et chercher ta valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    For i = 1 to 100 '100 lignes
        If Cells(i,col).value = val Then
            Worksheets("BlaBla").Range("A1").value = Cells(i,col).value
        End if
    Next
    Et tu te retrouves avec ta valeur en A1 sur la feuille BlaBla.

    A tes outils, adapte, cherche..

    Bonne chance
    DeaD

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    On vien de me montrer comment insérer une pièce jointe. Je vais donc essayer de vous éclairer un peu plus sur mon problème.

    Mon problème est illustré dans la pièce jointe
    Fichiers attachés Fichiers attachés

  12. #12
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour le forum, arbotch,

    je viens de regarder ton exemple, il aurait mieux valu que tu joignes ton fichier excel (allégé, bien sur) avec des données bidon si tu le souhaites

    Par rapport à ça :
    Par exemple pour un pas de 1, une valeur nominale de 7 et une classe P, je souhaiterais obtenir 0,06 et 0,04 dans deux cellules distinctes de la feuil2
    si je mets 1 dans le premier textbox (j'imagine que c'est un textbox) et 10 dans le second, P dans le troisième quelle est la réponse attendue ?

    et dans quelles cellules distinctes veux-tu la réponse ?

    Bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  13. #13
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Points : 160
    Points
    160
    Par défaut
    Si j'ai bien compris voici ma proposition pour répondre à sa demande

    Voir la solution ci joint proposé pour ramener l'info souhaite


  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Bonjour Casefayere, avec les données que tu m'as demandées il faudrait obtenir 0.06 dans la cellule A1 de la feuil2 et 0.04 dans la cellule A2 de la feuil2.
    Si tu avais 1 dans la textbox1, 14 dans la textbox2 et X dans la textbox3, il faudrait obtenir 0.05 et 0.03 dans les cellules donées ci-dessus.

    Merci à Lynx92260, je m'ai étudier ce que tu as fait. Merci beaucoup.

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Lynx92260, j'ai ouvert ton fichier Excel, mais je ne vois qu'un tableau?

  16. #16
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Points : 160
    Points
    160
    Par défaut j'ai oublié
    de mettre un bouton ....

    Il faut fouiner un peu dans le code non ??????

    Bon désolé sur l'oubli


    Fichiers attachés Fichiers attachés

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Je n'arrive pas à trouver les codes que tu as utilisé pour le programme. J'aurais aimé les voir pour étudier comment tu as fait. Merci

  18. #18
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    133
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 133
    Points : 160
    Points
    160
    Par défaut
    le code se trouve dans l'userform

    Tu selectionnes l'userform puis tu demandes d 'afficher le code

    Il y a juste ce code pour raffraichir les données ....
    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
     
    Private Sub ComboBox1_Click()
    Dim xls As Worksheet, lIndex As Long
     
        Set xls = ThisWorkbook.Worksheets("Feuil1")
     
        lIndex = ComboBox1.ListIndex + 3
        TxtFiletage.Text = xls.Cells(lIndex, 2)
        If OptionP Then
            TxtSup.Text = xls.Cells(lIndex, 4)
            TxtInf.Text = xls.Cells(lIndex, 5)
        Else
            TxtSup.Text = xls.Cells(lIndex, 6)
            TxtInf.Text = xls.Cells(lIndex, 7)
        End If
     
    End Sub
    Et la ComboBox1.RowSource=PasFiletage ou la region de la feuille 1 nommée pour des commodites de programmation

    Tout simplement

  19. #19
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    j'ai du mal à saisir car d'près ce que tu indiques
    avec les données que tu m'as demandées il faudrait obtenir 0.06 dans la cellule A1 de la feuil2 et 0.04 dans la cellule A2 de la feuil2.
    Si tu avais 1 dans la textbox1, 14 dans la textbox2 et X dans la textbox3, il faudrait obtenir 0.05 et 0.03 dans les cellules donées ci-dessus.
    le résultat est le meme que sur ton exemple
    Par exemple pour un pas de 1, une valeur nominale de 7 et une classe P, je souhaiterais obtenir 0,06 et 0,04 dans deux cellules distinctes de la feuil2
    la valeur nominale n'a pas d'influence sur le résultat ?
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  20. #20
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 13
    Points : 6
    Points
    6
    Par défaut
    Pour ce tableau, la valeur nominale n'a pas d'influence. Mais je dois faire ceci pour d'autres tableaux dans lesquels la valeur nominale a une influence.

Discussions similaires

  1. [XL-2010] Aide programme vba
    Par Rob's dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/10/2013, 10h06
  2. Demande d'aide programmation VBA
    Par quentin22breizh dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 10/09/2012, 16h27
  3. [Toutes versions] Aide programmation VBA
    Par sébastien.R dans le forum Macros et VBA Excel
    Réponses: 28
    Dernier message: 09/05/2011, 03h09
  4. Aide Programmation VBA?
    Par chubak62 dans le forum Excel
    Réponses: 3
    Dernier message: 20/05/2009, 20h41

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