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 :

Incrémentation selon paramètres [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Par défaut Incrémentation selon paramètres
    Bonjour à vous,
    Je suis entrain de concevoir une matrice afin de passer via un traitement numérique, ce qui m'évitera plusieurs feuilles papier A4 par jour. Meilleur pour l'environnement et le stockage

    En pièce jointe, je vous mets une partie de mon tableau.

    J'ai donc une liste déroulante pour le champs Heure, avec une plage par 30 min pour les 24heures d'une journée, j'ai également une liste déroulante pour la file d'appel (12 files au total) et une liste déroulante Appelant (7 typologies).

    Je souhaite donc que la personne sélectionne, la demie heure voulue, la file d'appel et appelant concerné et clic sur Ajouter.

    En cliquant sur ajouter, je souhaite que cela incrémente en +1 la colonne de la file d'appel concernée, ainsi en +1 de la typologie noté en totaux.

    Cela n'est peut être pas très clair, me met le fichier capture1, qui correspond à ce qui devrait s'afficher dans le cas de l'exemple capture après appui sur Ajouter.

    Ainsi si l'on refait le même type, cela passera à 2 et 2 si même file d'appel et appel sur même heure d'appel.

    Selon moi je pense que cela doit passer via VBA car je ne pense pas que les formules excel soit suffisantes.

    Merci par avance de votre aide, cordialement.
    Images attachées Images attachées   

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Ce sera plus clair si tu mets un classeur exemple en pièce jointe ? Quel est ton niveau de connaissance de VBA ?

  3. #3
    Membre confirmé Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Par défaut
    Bonsoir, je pense que mon niveau peut être classé de débutant en VBA, voir mes anciens messages depuis des années. Par contre je sais m'adapter ayant fais 2 ans de programmation en BTS de 2003 à 2005 mais en langage C++.

    Depuis je fais que de la programmation ponctuelle selon mes besoins en C++, VBA, HTML mais rien de très compliqué.

    J'ai mis en pièce jointe le fichier complet d'où est tiré les captures de mon 1er post. Pour l'instant l'ergonomie et mise en page n'est pas faite, car c'est ce que je ferais en dernier. Puisque je me dis que mes listes déroulantes risque de passer via VBA aussi car pas sûr que ce que je souhaite faire soit possible via la validation de données comme je l'ai fait actuellement.

    Merci par avance, cordialement.
    Fichiers attachés Fichiers attachés

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bon. On va dire que tu n'es pas débutant en programmation. Tu devrais me préciser à quoi correspondent F, C, M, T, P et E. J'ai une vague idée pour certaines lettres mais pas pour toutes de toutes façons. Est-ce que "Autres en L6 correspond à "Autres de la liste "Appelant" ?

  5. #5
    Membre confirmé Avatar de batmat86
    Homme Profil pro
    Charge de clientele
    Inscrit en
    Octobre 2003
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Charge de clientele

    Informations forums :
    Inscription : Octobre 2003
    Messages : 239
    Par défaut
    Bonsoir, oui tout ce qui est dans totaux correspond à la liste déroulante Appelant. Je viens de voir que j'ai en effet inversé Autres avec Total. Autres devrait être situé avant.

    Et les différentes lettres correspondent à l'ordre de la liste déroulante Appelant.

    Famille -> F
    Personne concernée -> C
    Personnel soignant -> M (Médical)
    Prescripteur -> T (Tuteur)
    Polluant -> P
    Autres -> Autres
    E-Mut -> E

    Certaines lettres sont différentes pour distinguer la typologie, car sinon on aurait eu P pour Polluant, Prescripteur, Personne ....

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Nommes E3 par HEURE, K3 par FILE, O3 par APPELANT, D7: D56 par PLAGE, E6:L6 par LSTAPPELANT et M6:X6 par LSTFILE

    Affecte au boutons les sub Ajouter et Supprimer

    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
    Option Explicit
     
    Private Function Adresse(ByVal Hr As String, ByVal Info As String, Optional App As Boolean) As String
    Dim c As Range
    Dim Lig As Integer, Col As Integer
     
    If Hr <> "" Then
        Set c = [PLAGE].Find(Hr, LookIn:=xlValues, lookat:=xlWhole)
        If Not c Is Nothing Then
            Lig = c.Row
            Set c = Nothing
            If Info <> "" Then
                Set c = IIf(App, [LSTAPPELANT], [LSTFILE]).Find(Dimin(Info), LookIn:=xlValues, lookat:=xlWhole)
                If Not c Is Nothing Then
                    Col = c.Column
                    Set c = Nothing
                    Adresse = Cells(Lig, Col).Address
                End If
            End If
        End If
    End If
    End Function
     
    Private Function Dimin(ByVal Str As String) As String
     
    Dimin = Str
    On Error Resume Next
    Dimin = Switch(Str = "Famille", "F", Str = "Personne concernée", "C", Str = "Personnel soignant", "M", Str = "Prescripteur", "T", Str = "Polluant", "P", Str = "E-Mut", "E")
    On Error GoTo 0
    End Function
     
    Private Sub Modifier(Optional Ajout As Boolean)
    Dim OuAjouterFile As String, OuAjouterAppelant As String
     
    OuAjouterFile = Adresse([HEURE], [FILE])
    OuAjouterAppelant = Adresse([HEURE], [APPELANT], True)
     
    With Worksheets("Feuil1")
        If OuAjouterFile <> "" Then .Range(OuAjouterFile) = Val(.Range(OuAjouterFile)) + IIf(Ajout, 1, -1)
        If OuAjouterAppelant <> "" Then .Range(OuAjouterAppelant) = Val(.Range(OuAjouterAppelant)) + IIf(Ajout, 1, -1)
        [HEURE] = ""
        [FILE] = ""
        [APPELANT] = ""
    End With
    End Sub
     
     
    Sub Ajouter()
     
    Modifier True
    End Sub
     
    Sub Supprimer()
     
    Modifier
    End Sub
    PS: Au lieu de la fonction Dimin, prévoit C25:C31 les abréviations et on pourrait changer légèrement le code (les abréviations en dur dans le code n'est pas une bonne méthode)

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

Discussions similaires

  1. [CR 2008] Critère de sélection selon paramètre
    Par Cryos dans le forum Débuter
    Réponses: 1
    Dernier message: 17/02/2011, 11h11
  2. Réponses: 6
    Dernier message: 25/10/2010, 14h27
  3. Interface graphique selon paramètres
    Par bromlecornu dans le forum Langage
    Réponses: 2
    Dernier message: 26/07/2010, 17h51
  4. Enchaînement de liens selon paramètre
    Par patricko dans le forum Langage
    Réponses: 1
    Dernier message: 09/05/2008, 09h12
  5. Réponses: 8
    Dernier message: 24/11/2006, 15h06

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