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] Problème sur une macro [XL-2016]


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
    Avril 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2017
    Messages : 10
    Par défaut [aide] Problème sur une macro
    Bonsoir,

    J'aurai besoin d'aide sur une macro,

    je souhaite récupérer la valeur de la cellule de la colonne2 lorsque la cellule de colonne1 correspond à un critère.
    Sachant que les variables colonne sont alimentées par un OptionButton sytle "Colonne: A , B, C .."
    J'ai un problème avec la ligne 26 je ne comprends pas pourquoi.

    Je vous remercie pour vos réponses.

    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
     
    Private Sub CommandButton5_Click()
        Dim colonne1 As String, colonne2 As String
     
        'Boucle pour chaque contrôle de Frame_colonne
        For Each bouton_FRAME1 In Frame1.Controls
            If bouton_FRAME1.Value Then
               'La variable "colonne" prend comme valeur le texte du bouton
               colonne1 = bouton_FRAME1.Caption
            End If
        Next
     
    For Each bouton_FRAME4 In Frame4.Controls
            If bouton_FRAME4.Value Then
               'La variable "colonne" prend comme valeur le texte du bouton
               colonne2 = bouton_FRAME4.Caption
            End If
            Next
     
    Dim cel As Range, i As Long
     
    For Each cel In Range(colonne1 & ":" & colonne1)
    i = cel.Row
    Select Case True
    Case cel Like "60*"
    d = cel(colonne2 & i).Value
    End Select
    Next cel
     
    MsgBox d
    End Sub

  2. #2
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,

    peut être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    d = range(colonne2 & i).Value
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour
    a mon avis c'est plutôt un probleme de compréhention de ton environnement tu t'est complètement emmêlé les pinceaux

    ces quelques lignes n'ont ni queue ni sens voir commentaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    For Each cel In Range(colonne1 & ":" & colonne1)
    i = cel.Row
    Select Case True'select case quoi true ??????????????????
    Case cel Like "60*"''  'ici maintenant tu test si la valeur demarre par 60 hey???????????
    d = cel(colonne2 & i).Value'ici maintenat tu fait comme si cel était une variable tableau ou "cells"
    'heu....??????? cel est incrementée par la boucle elle meme c'est donc cel tout court
    End Select
    Next cel
    bref comme ca a aucun sens je ne pui aller plus loin si ce n'est que te conseiller de revoir tes bases en vba
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    @Marc175330 :
    Un Select Case (True ou pas) avec un seul Case est inutile.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each cel In Range(colonne1 & ":" & colonne1)
        If cel Like "60*" Then d = Range(colonne2 & cel.Row).Value: Exit For
    Next cel
    Bien sur à condition que colonne1 et colonne2 sont bien complétée de valeurs de colonnes valides ("A", "B", "V", ... "AC" etc...)
    N'oublie pas non plus les Exit For dans chacune de tes boucles pour sortir lorsque trouvé...
    Surtout dans la boucle sur ta colonne ENTIERE... (peut-être revoir cet aspect).

    @Patrick : Select Case True permet, entres autres choses, d'utiliser l'opérateur Like dans un Select Case.
    Si si ça existe.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2017
    Messages : 10
    Par défaut
    bonjour,


    @pijaku et @mjpmjp :

    Merci pour vos contributions, vos solutions fonctionnent.
    J'ai adapter le range pour que la boucle ne s'effectue pas sur toute la colonne mais que de la première à la dernière ligne non vide de la colonne.
    J'utilisais un seul case seulement dans le but d'effectuer un test la macro final comporte plusieurs case.

    Bonne journée,

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    ok pijaku pour le case true je ne m'en était jamais servi comme ca

    mais il y avait bien un soucis au niveau de l'interprétation de l'object "cel"
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 17/07/2016, 09h44
  2. Problème sur une macro créée en VBA
    Par IAmByB dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 17/04/2014, 18h29
  3. VBA : problème sur une macros basé sur un SI
    Par PeaceMaker dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/04/2009, 22h54
  4. problème sur une macro pour une conversion en VB6.3
    Par Zoldick dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/06/2008, 14h41
  5. petite aide sur une macro pour transfere de valeur
    Par fpouzou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/06/2007, 16h54

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