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 :

Ajouter une valeur


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Octobre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable sécurité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 5
    Par défaut Ajouter une valeur
    bonjour je souhaite en plus de la valeur "v" rajouter les valeurs "d" et "m",
    pour générer mais journées.


    Par avance merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur en études décisionnelles
    Inscrit en
    Février 2013
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur en études décisionnelles

    Informations forums :
    Inscription : Février 2013
    Messages : 134
    Par défaut
    Bonjour,
    Dans quel contexte ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Octobre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable sécurité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 5
    Par défaut
    C'est pour un planning, je n'y connais pas grand chose j'ai joint le fichier.

  4. #4
    Expert éminent


    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
    Par défaut
    Citation Envoyé par stefdebx Voir le message
    C'est pour un planning, je n'y connais pas grand chose j'ai joint le fichier.
    pour le fichier voir : Fichier joint dans vos discussions

  5. #5
    Membre à l'essai
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Octobre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable sécurité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 5
    Par défaut Voici le code
    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
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    'Déclaration des variables
    Public liste_onglet As String
    Public ongletgeneration
    Public nb_onglet, msg1, msg2, msg3, msg4, msg5, msg6, Style1, titre1
    Public debut_lig As Integer
    Public fin_lig As Integer
    Public debut_col As Integer
    Public fin_col As Integer
    Public colmois As Integer
    Public annee As Integer, jour As Integer, mois As String, DateTexte As String
    Public date_t As Date, DateFormat As String
    Public F_traitement As String, F_chemin As String, TestOnglet As String
     
    Public Sub Generation_tableaux()
    '
    '  Copyright C. GOMEZ - Macro enregistrée le 12/2013
    '
     
    'On Error GoTo erreur_general
     
    '====   Variable générales
    nb_onglet = Worksheets.Count
    msg1 = "le traitement a déjà été réalisé. Voulez vous recommencer ?"
    msg1 = msg1 & " oui = suppression des onglets générés : JOURNEE_01, JOURNEE_02,...,"
    msg1 = msg1 & "  pour recommencer . Non = arrêt traitement"
    msg2 = "génération des onglets terminée"
    msg3 = "PB lors de l'éxecution - Erreur : "
    msg4 = "onglets effacés ! vous pouvez régénérer"
    msg5 = "Arrêt traitement"
    msg6 = "génération des onglets terminée"
    msg7 = "Cette version ne fonctionne que pour l'année XXXX"
    Style1 = 4 + 48
    titre1 = "Attention"
    ongletgeneration = 6
     
    liste_onglet = "Generation" & " " & "1 ER SEMESTRE" & " " & _
    "JOURNEE BASE"
     
    ' =======   Lancement des actions
    Sheets("Generation").Activate
     
    debut_lig = Cells(7, 3)
    fin_lig = Cells(8, 3)
    debut_col = Cells(10, 3)
    fin_col = Cells(11, 3)
    annee = Cells(13, 3)
     
    Cells(17, 2).Value = "Traitement en cours ! ! veuillez patienter"
    Cells(18, 2).Value = "r r r r r r r"
    Application.ScreenUpdating = False
     
    F1 = Generation_Liste()
     
    'F4 = Traitement_final()
     
    sortie_general:
    Application.ScreenUpdating = True
     
    Sheets("Generation").Activate
    Cells(17, 2).Value = ""
    Cells(18, 2).Value = ""
    Exit Sub
     
    erreur_general:
    Application.ScreenUpdating = True
    Sheets("Generation").Activate
    Cells(17, 2).Value = ""
    Cells(18, 2).Value = ""
    msg3 = msg3 & Err.Number
    Response = MsgBox(msg3, 0, titre1)
    End Sub
     
    Public Function Generation_Liste()
     
    '====   Création des journées
     
    'On Error GoTo erreur_liste
     
     
    Sheets("1 ER SEMESTRE").Activate
    Cells(3, debut_col).Select
     
    colx = debut_col
    TestOnglet = 0
    While colx <= fin_col
        Sheets("1 ER SEMESTRE").Activate
        Cells(3, colx).Select
        test = ActiveCell.Value
     
        Sheets("Generation").Activate
        Application.ScreenUpdating = True
        If Cells(18, 2).Value = "r r r r r r r" Then
            Cells(18, 2).Value = "q q q q q q q"
            Else
            Cells(18, 2).Value = "r r r r r r r"
        End If
        Application.ScreenUpdating = False
        Sheets("1 ER SEMESTRE").Activate
     
        '====   réalisation de la génération
        If test = "X" Or test = "x" Then
            jour = Cells(4, colx)
            colmois = colx - jour + 1
            mois = Cells(1, colmois)
            DateTexte = jour & " " & mois & " " & annee
            date_t = CDate(DateTexte)
            DateFormat = Format(date_t, "dddd d mmmm yyyy")
            TestOnglet = TestOnglet + 1
            NomOnglet = "JOURNEE " & TestOnglet
            '====   test réalisation traitement précédent
     
            For i = 1 To nb_onglet
                Sheets(i).Activate
                If ActiveSheet.Name = "JOURNEE 1" Then
                    Response = MsgBox(msg1, Style1, titre1)
                    If Response = 6 Then
                        Sheets(1).Activate
                        For Each w In Worksheets
                            Application.DisplayAlerts = False
                            MyPos = InStr(1, liste_onglet, w.Name, 0)
                            If MyPos = 0 Then
                            w.Delete
                            End If
                            Application.DisplayAlerts = True
                        Next w
                        GoTo sortie_efface
                    End If
                    If Response = 7 Then
                        GoTo sortie_arret
                    End If
                End If
            Next i
     
            '====   Génération des onglets et des informations
     
            Sheets("JOURNEE BASE").Select
            onglet_temp = Worksheets.Count
            Sheets("JOURNEE BASE").Copy After:=Sheets(onglet_temp)
            Sheets("JOURNEE BASE (2)").Select
            Sheets("JOURNEE BASE (2)").Name = NomOnglet
            journee_en_cours = ActiveSheet.Name
            Cells(2, 5) = DateFormat
     
     
            '====   Génération contenu des journées
            gene_T = Generation_donnees(journee_en_cours, colx)
     
        End If
        colx = colx + 1
    Wend
    Response = MsgBox(msg2, 0, titre1)
     
    sortie_generation:
    Generation_Liste = 1
    Exit Function
     
    sortie_arret:
    Response = MsgBox(msg5, 0, titre1)
    Generation_Liste = 0
    Exit Function
     
    sortie_efface:
    Response = MsgBox(msg4, 0, titre1)
    Generation_Liste = 2
    Exit Function
     
     
    erreur_liste:
    Application.ScreenUpdating = True
    Sheets("generation").Activate
    Cells(17, 2).Value = ""
    Cells(18, 2).Value = ""
    msg3 = msg3 & Err.Number
    Response = MsgBox(msg3, 0, titre1)
     
    End Function
     
    Public Function Generation_donnees(feuillejournee, flagcol)
     
    '
    '  Copyright C. GOMEZ - Macro enregistrée le 12/2013
    '
     
    'On Error GoTo erreur_donnees
     
     
    Sheets("1 ER SEMESTRE").Activate
     
    ligx_c = 5
    colx = flagcol
    ligx_l = debut_lig
    While ligx_l <= fin_lig
        Sheets("1 ER SEMESTRE").Activate
     
          ' Récupération des données
            matricule = Cells(ligx_l, 2)
            code = Cells(ligx_l, 3)
            nom = Cells(ligx_l, 4)
            valeur = Cells(ligx_l, flagcol)
     
        Sheets(feuillejournee).Activate
     
          ' collage des données valides
        If Left(valeur, 1) = "v" Or Left(valeur, 1) = "V" Then
            Cells(ligx_c, 2).Value = matricule
            Cells(ligx_c, 3).Value = code
            Cells(ligx_c, 4).Value = nom
            Cells(ligx_c, 5).Value = valeur
            ligx_c = ligx_c + 1
        End If
     
        ligx_l = ligx_l + 1
    Wend
     
    Sheets("generation").Activate
    Cells(1, 1).Activate
     
    sortie_donnees:
    Exit Function
     
    erreur_donnees:
    Application.ScreenUpdating = True
    Sheets("generation").Activate
    Cells(17, 2).Value = ""
    Cells(18, 2).Value = ""
    msg3 = msg3 & Err.Number
    Response = MsgBox(msg3, 0, titre1)
     
    End Function

  6. #6
    Expert éminent


    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
    Par défaut
    c'est bien joli de nous poster ton code complet mais tu as oublié de traduire :

    Citation Envoyé par stefdebx Voir le message
    bonjour je souhaite en plus de la valeur "v" rajouter les valeurs "d" et "m",
    c'est quoi ces v , d , m ??? ils sont ou ?

  7. #7
    Membre à l'essai
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Octobre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable sécurité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 5
    Par défaut
    Pour moi c'est une première c'est vrai que je ne suis pas très explicite.

    J'ai un classeur excel fait par un ancien collègue.

    ce classeur a 3 feuilles:
    la première, est feuille appelée génération avec un bouton.
    le deuxième, c'est mon planning avec les 4 premières colonnes A B C D qui comportes des infos sur les agents (noms matricules etc..)dans les cellules.
    le autres cellules de E à GM c'est l’activité semestrielle . dans les cellules activité il y a des " v1 v2 m1 m2 dis "
    Pour généré mes feuilles de bases je fais X dans la ligne 3 et dans les cellules qui intéressement.
    la troisièmes, c'est journée de base.

    Aujourd'hui quand je généré avec le bouton de la première page cela me créer des des journée de base uniquement avec les v1 et v2 il ne prend
    en charge que les cellule ou il y a v. je voudrais qu'il prenne en charge les cellules ou il y aussi m et d.

    La deuxième feuille va de la cellules "A à GM" et à 130 lignes

  8. #8
    Membre confirmé Avatar de iGaur2501
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2014
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2014
    Messages : 28
    Par défaut
    Bonjour stefdebx et bienvenue danl le monde du VBA.

    Dans le code que tu as affiché hier, à la ligne 204, on peut lire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If Left(valeur, 1) = "v" Or Left(valeur, 1) = "V" Then
    C'est ici qu'Excel sélectionne ce qu'il va générer. Tu peux ajouter entre le "V" et le "Then" les conditions que tu souhaites. Ça devrait ressembler à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     If Left(valeur, 1) = "v" Or Left(valeur, 1) = "V" Or Left(valeur, 1) = "m" _
    Or Left(valeur, 1) = "M" Or Left(valeur, 1) = "d" Or Left(valeur, 1) = "D" Then
    Bonne chance et bon courage.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Responsable sécurité
    Inscrit en
    Octobre 2014
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable sécurité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2014
    Messages : 5
    Par défaut
    Super merci, ça fonctionne à merveille.

    beau boulot

Discussions similaires

  1. ajouter une valeur supplementaire à une session
    Par carmen256 dans le forum Langage
    Réponses: 4
    Dernier message: 06/04/2006, 14h53
  2. Ajouter une valeur dans un listview
    Par aliwassem dans le forum Composants VCL
    Réponses: 1
    Dernier message: 25/01/2006, 22h15
  3. VBA : ajouter une valeur dans une liste déroulante
    Par remi59 dans le forum Access
    Réponses: 4
    Dernier message: 22/12/2005, 10h01
  4. ajouter une valeur dans une combobox
    Par decour dans le forum Access
    Réponses: 1
    Dernier message: 17/10/2005, 10h58
  5. Popup ajoutant une valeur a un champ
    Par kalan dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/09/2005, 15h39

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