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 :

Exécution macro lors d'un changement de valeur dans une cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Avatar de yoyo3d
    Homme Profil pro
    Administratif
    Inscrit en
    Avril 2002
    Messages
    410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2002
    Messages : 410
    Points : 1 243
    Points
    1 243
    Par défaut Exécution macro lors d'un changement de valeur dans une cellule
    Bonjour à tous,
    j'ai une feuille ("interface") dans laquelle j'ai 2 listes déroulantes.
    quand je choisi un élément dans la première, en ("A1"), cela me remplis la deuxième liste en ("A2") avec d'autre valeurs.
    pour cela, j'utilise le code suivant dans ma feuille ("Interface"):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then nb_ligne_article
    End Sub
    le problème, je souhaite également mettre à jour une troisième liste déroulante quand je choisie un élément dans la deuxième...

    je pensais pouvoir rajouter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Target.Address = "$A$2" Then choix_2
    choix_2 étant le code spécifique au traitement de la valeur choisie dans le 2eme menu déroulant....

    j’espère avoir été claire...., j'ai bien trouvé des infos sur l’exécution d'une macro lors du changement de valeur dans une cellule, mais je n'arrive pas à combiner les codes liés au changement dans plusieurs cellules sur ma même feuille
    j'ai essayé de rajoutér une private sub spécifique mais le code n'est jamais utilisé.
    Salut à tous et merci @# yoyo3d

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    Bonjour,

    Et bien, je ne comprends pas ce qui ne marche pas dans votre code, (si ce n'est peut-être le test sur les adresses), ça devrait faire ce que vous demandez, même si il risque de ralentir pas mal votre exécution .....
    A essayer peut-être (non testé)

    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
    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
     
       Debug.Print  Target.Address
     
     
        If Not(Application.Intersect(Target, Sh.Range("A1:A2") Is Nothing) Then
     
          If Target = Sh.Range("A1") Then  
              Call nb_ligne_articl
          Else: 
          If Target = Sh.Range("A2") Then  choix_2
     
       End If
    (....)
     
     
       End If
     
    End Sub
    "Idéalement nous sommes ce que nous pensons. Dans la réalité, nous sommes ce que nous accomplissons." A.Senna
    et n'oubliez-pas de développer des .... sourires ^_^

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Je ne comprends pas vraiment ton problème.

    As-tu essayé tout simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then nb_ligne_article
    If Target.Address = "$A$2" Then choix_2
    End Sub
    Quoi que... avec un select case, ça serait plus propre.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Membre éprouvé
    Avatar de yoyo3d
    Homme Profil pro
    Administratif
    Inscrit en
    Avril 2002
    Messages
    410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2002
    Messages : 410
    Points : 1 243
    Points
    1 243
    Par défaut
    tout d'abord, merci à vous deux.

    j'ai d'abord essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Option Explicit
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then nb_ligne_article
    If Target.Address = "$A$2" Then choix_2
    End Sub
    je n'avais pas de message d'erreur, mais cela ne faisait rien, le code rattaché au choix du menu 2 n'était tout simplement pas exécuté.

    quand au test proposé par Vinc_bilb, je ne comprend pas du tout comment cela fonctionne, pourquoi chercher l’intersection de 2 ranges.
    il s'agit simplement de 2 cellules contenant chacune un menu déroulant . le premier me filtrant des valeurs qui à leur tour me permettent de sélectionner d'autres valeurs....
    Salut à tous et merci @# yoyo3d

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    quand au test proposé par Vinc_bilb, je ne comprend pas du tout comment cela fonctionne, pourquoi chercher l’intersection de 2 ranges.
    => ça évite de passer par les tests si la plage modifiée n'est pas en A1 ou A2 (optimisation de la vitesse), et pour le reste, il devrait faire ce que vous voulez
    "Idéalement nous sommes ce que nous pensons. Dans la réalité, nous sommes ce que nous accomplissons." A.Senna
    et n'oubliez-pas de développer des .... sourires ^_^

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Essaye :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As Range)
    MsgBox(Target.Adress();vbOKOnly)
    End Sub
    Ca permettre de savoir si le problème vient de la fonction ou des tests et en plus ça t'affichera le contenu de l'adresse pour vérifier que tu mets les bonnes conditions dans les tests.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  7. #7
    Membre éprouvé
    Avatar de yoyo3d
    Homme Profil pro
    Administratif
    Inscrit en
    Avril 2002
    Messages
    410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2002
    Messages : 410
    Points : 1 243
    Points
    1 243
    Par défaut
    Désolé,
    le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As Range)
    MsgBox(Target.Adress();vbOKOnly)
    End Sub
    me donne une erreur de syntaxe.

    Quand au test en A1 et A2, il ne doit pas y avoir d'autres cellules à modifier...
    Salut à tous et merci @# yoyo3d

  8. #8
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par yoyo3d Voir le message
    me donne une erreur de syntaxe.
    Ca serait trop demander que d'avoir la ligne et le message d'erreur ?...

    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As Range)
    Debug.Print MsgBox(Target.Adress(), vbOKOnly)
    End Sub
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  9. #9
    Membre éprouvé
    Avatar de yoyo3d
    Homme Profil pro
    Administratif
    Inscrit en
    Avril 2002
    Messages
    410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2002
    Messages : 410
    Points : 1 243
    Points
    1 243
    Par défaut
    oups,
    c'est la ligne : MsgBox(Target.Adress();vbOKOnly) qui se met en rouge lors de la saisie et lorsque je "force" l'exécution de la macro, VS me dit erreur de syntaxe en surlignant en jaune cette ligne.
    j'essayerais demain matin au boulot avec debug.

    merci à vous.
    Salut à tous et merci @# yoyo3d

  10. #10
    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
    bonsoir,

    le caractère séparateur de paramètre en VB c'est virgule (,) et pas point-virgule ( modifie l'appel à MsgBox

  11. #11
    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
    Bonsoir,

    D'accord avec Bbil, bien sur et sauf erreur de ma part je ne vois pas l'intérêt d'ajouter "vbOKOnly", j'aurai écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Target.Address()

    attention "Address" pas "Adress"
    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...)

  12. #12
    Membre éprouvé
    Avatar de yoyo3d
    Homme Profil pro
    Administratif
    Inscrit en
    Avril 2002
    Messages
    410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2002
    Messages : 410
    Points : 1 243
    Points
    1 243
    Par défaut
    Bonjour à tous, et merci de vos réponses.

    Bon, après vérification de la syntaxe "MsgBox", effectivement, cela m'affiche bien la cellule qui change.(ça m'apprendra à faire des copier coller de code sans vérifier...)

    le fait est que mon code n'atteint jamais la partie ou je traite le choix de ma deuxième liste déroulante.
    c'est forcement le déroulement du code qui pose problème. je suis un éternel débutant autodidacte et je n'ai pas la méthode pour définir ou et quand je dois placer telle procédure donc ça devient difficile...

    je joint deux bout de code "raccourcis à l'essentiel"

    dans mon module j'ai les 2 codes suivants
    le premier me tri mes article et me permet de récupérer les listes de famille "unique"
    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    Function nb_ligne_article()
    'compter le nb de ligne feuille articles
    nb_ligne_article = Sheets("articles").Range("A1").End(xlDown).Row
    Sheets("Interface").Range("F2").Value = nb_ligne_article
     
    'trier la liste des articles
    Sheets("articles").Activate
    'blablabla
     
    '- - - - - - - - - - - - - - - - - - - -
    'isoler la liste des catégories unique
    '- - - - - - - - - - - - - - - - - - - -
     
    'nettoyerla liste des catégories
    Sheets("BdD").Range("A:A").Clear
     
    'mettre à jour la liste des catégories
    With Sheets("articles")
    Dim cpt_categorie As Integer
    cpt_categorie = 1
     
    For i = 2 To nb_ligne_article
     
        Sheets("BdD").Range("A" & cpt_categorie).Value = Range("B" & i).Value
        With Sheets("articles")
            If Range("B" & i).Value = Range("B" & i + 1).Value Then
                cpt_categorie = cpt_categorie
            Else
                cpt_categorie = cpt_categorie + 1
            End If
        End With
    Next i
     
    End With
     
    'creer la liste de catégorie pour alimenter la cellule /menu déroulant
    Sheets("BdD").Activate
    Range("A1:A" & cpt_categorie).Select
    ActiveWorkbook.Names.Add Name:="Categorie", RefersTo:=Selection
     
    With Sheets("Interface").Select
        Range("B15:D15").Select
        With Selection.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=Categorie"
    ' blalblabla
        End With
    End With
     
    'récupération de la valeur de Interface!B15
    Dim choix_categorie As String
    choix_categorie = Range("B15").Value
    Range("G2").Value = choix_categorie
     
    '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    'isoler les familles possibles en fonction du choix catégorie
    '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    'definir le nombre d'élémenst dans la catégorie choisie
     
    Dim famille As String
    Dim L1_famille As Integer
    Dim Lx_famille As Integer
    Dim nb_cat_choix As Integer
     
    With Sheets("Articles").Activate
        'trouver la premiere ligne dans la catégorie choisie
        L1_famille = Range("B:B").Find(choix_categorie, lookat:=xlWhole).Row
        'compter le nb de famille dans la catégorie choisie
        nb_cat_choix = Application.WorksheetFunction.CountIf( _
        Range("B:B"), choix_categorie)
        'trouver la derniere ligne dans la catégorie choisie
        Lx_famille = (L1_famille + nb_cat_choix) - 1
     
    'créer la liste des familles unique en fonction du choix categorie
    Sheets("BdD").Range("B:B").Clear
    Dim cpt_famille As Integer
    cpt_famille = 1
     
    For i = L1_famille To Lx_famille
     
        Sheets("BdD").Range("B" & cpt_famille).Value = Range("D" & i).Value
        With Sheets("articles")
            If Range("D" & i).Value = Range("D" & i + 1).Value Then
                cpt_famille = cpt_famille
            Else
                cpt_famille = cpt_famille + 1
            End If
        End With
    Next i
     
    'creer la liste de famille pour alimenter la cellule /menu déroulant
    Sheets("BdD").Activate
    Range("B1:B" & (cpt_famille - 1)).Select
    ActiveWorkbook.Names.Add Name:="Famille", RefersTo:=Selection
     
        With Sheets("Interface").Select
            Range("B17").Clear
            Range("B17").Select
            With Selection.Validation
                .Delete
                .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                xlBetween, Formula1:="=Famille"
      'blablabla
            End With
        End With
     
    End With
     
    End Function

    celui la me permet de faire la même chose pour les catégories d'article en fonction du choix précédent

    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
    Function choix_type()
     
    '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    'isoler les type possibles en focntion du choix famille
    '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     
    Dim typefamille As String
    Dim L1_type As Integer
    Dim Lx_type As Integer
    Dim nb_famille_choix As Integer
     
    With Sheets("Articles").Activate
     
    'récupération de la valeur de Interface!B15
    Dim choix_famille As String
    choix_famille = Range("B17").Value
    'Range("G3").Value = choix_famille
     
     
        'trouver la premiere ligne dans la famille choisie
        L1_type = Range("D:D").Find(choix_famille, lookat:=xlWhole).Row
        'compter le nb de famille dans la catégorie choisie
        nb_famille_choix = Application.WorksheetFunction.CountIf( _
        Range("D:D"), choix_famille)
        'trouver la derniere ligne dans la catégorie choisie
        Lx_type = (L1_type + nb_famille_choix) - 1
     
    End With
     
    End Function
    et celui la, situé directement dans le code de ma feuille "Interface"
    devait me permettre de detecter le changement effectué en B15 et B17 et d'appeler la fonction adéquate
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Option Explicit
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    'If Target.Address = "$B$15" Then nb_ligne_article
    If Target.Address = "$B$17" Then choix_type
    MsgBox Target.Address()
    End Sub

    j’espère ne pas avoir mis trop de code...
    Salut à tous et merci @# yoyo3d

  13. #13
    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
    je pense que le problème (mais ne suis pas sur !!) vient que les procédures que tu appelles sont des fonctions (et non des Sub) et de plus sans argument

    mais je peux me tromper
    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...)

  14. #14
    Membre éprouvé
    Avatar de yoyo3d
    Homme Profil pro
    Administratif
    Inscrit en
    Avril 2002
    Messages
    410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2002
    Messages : 410
    Points : 1 243
    Points
    1 243
    Par défaut
    C'est tout à fait possible, comme je le dit plus haut, je n'ai jamais vraiment assimilé quand utiliser une fonction ou un subroutine...
    Salut à tous et merci @# yoyo3d

  15. #15
    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
    comme je ne peux plonger dans la problématique, essayes en changeant tes "function" par des "Sub"

    J'ai oublier de préciser, attention aux noms des procédures comparées aux noms des variables, à adapter
    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...)

  16. #16
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par yoyo3d Voir le message
    C'est tout à fait possible, comme je le dit plus haut, je n'ai jamais vraiment assimilé quand utiliser une fonction ou un subroutine...
    Une fonction est une portion de code à laquelle on envoie (ou pas) des paramètres et qui retourne une valeur. Cette valeur n'est pas forcément numérique : ça peut être du texte ou une valeur logique. Une fonction a un type (As) comme une variable.
    En gros, une fonction fait un calcul, un peu comme une fonction Excel.

    Pour tout le reste, on utilise Sub, en particulier ce qui réalise des actions comme modifier le contenu d'une cellule, ce que réalise tes fonctions.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  17. #17
    Membre éprouvé
    Avatar de yoyo3d
    Homme Profil pro
    Administratif
    Inscrit en
    Avril 2002
    Messages
    410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Administratif
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2002
    Messages : 410
    Points : 1 243
    Points
    1 243
    Par défaut
    Merci à vous pour ces précisions
    j'ai compris le principe. Je vais revoir mon code et voir comment placer des paramètres pour mes fonctions.
    Salut à tous et merci @# yoyo3d

  18. #18
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par Menhir Voir le message
    En gros, une fonction fait un calcul, un peu comme une fonction Excel.
    Même qu'une fonction en VBA peut être utilisée dans une feuille de calcul, de la même façon qu'une fonction d'Excel.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

Discussions similaires

  1. [XL-2010] Envoi mail automatique avec une macro lors d'un changement d'état d'une cellule
    Par sly77400 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 12/03/2015, 20h00
  2. Réponses: 8
    Dernier message: 18/11/2014, 18h44
  3. Réponses: 1
    Dernier message: 06/11/2013, 16h41
  4. Charger Macro apres changement de valeur d'une cellule
    Par jackfred dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/07/2007, 14h51
  5. Réponses: 8
    Dernier message: 29/03/2007, 14h48

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