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 :

UserForm et TextBox


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 6
    Par défaut UserForm et TextBox
    Bonjour ou Bonsoir,

    Je suis débutant en VBA.
    Et je suis actuellement en train de faire un calendrier avec pour objectif de rentrer des données pour certaines dates au choix.
    En pièce jointe je vous transmets mon travail.

    Je veux que lorsque j'utilise l'UserForm1 que les données inscrites dans "TextBox_note" et "TexteBox_initiale" restent uniquement pour la cellule où les données sont entrées.

    Et que lorsque je change l'année les données restent présentes.

    J'ai essayé quelques solution avec "SaveSetting" et j'ai beaucoup chercher mais là je suis à bout.

    Je ne sais pas si je suis très clair, j'espère que mon fichier vous sera utile pour m'aider.

    Merci d'avance.
    Fichiers attachés Fichiers attachés

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    ci-dessous, une proposition qui ne prend pas en compte les notes (je ne sais pas ou tu les mets) mais toutes les initiales, à toi d'adapter (ça vaut ce que ça vaut)
    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
    Sub generer_calendrier()
    Dim tb(), Plg As Range, cel As Range, i As Integer
    Dim Cmois, Cjour, Cvaleur, Ccouleur
    Set Plg = Range("A3:X33") 'si ta plage reste fixe
    i = 0
    'ci-desous, un tableau qui reprend toutes les cellules non vide en B, D, E, etc.
    '******************************
    For Each cel In Plg
      If WorksheetFunction.IsEven(cel.Column) And cel <> "" Then
        i = i + 1: ReDim Preserve tb(1 To i)
        tb(i) = Month(CDate(cel(1, 0))) & "|" & Day(CDate(cel(1, 0))) & "|" & cel & "|" & cel.Interior.Color
      End If
    Next cel
    '***********************************
    'ton programme que je ne touche pas
         'ACCELERATION DU PROGRAMME
         Application.ScreenUpdating = False
     
        'INITIALISATION DU TABLEAU
        Range("A3:X33").ClearContents
        Range("A3:X33").ClearFormats
     
        annee = TextBox_annee
     
        'FORMAT DATE CELLULES
        Range("E25,A:A,C:C,E:E,G:G,I:I,K:K,M:M,O:O,Q:Q,S:S,U:U,W:W").NumberFormat = "ddd dd"
     
        'FORMAT DATE AUJOURD'HUI
        Cells(1, 13).NumberFormat = "[$-F800]dddd, mmmm dd, yyyy"
     
        'Boucle MOIS
        For mois = 1 To 12
     
             'NOMBRES DE JOURS CALCULER DANS LE MOIS
             nb_jours = Day(DateSerial(annee, mois + 1, 1) - 1)
     
             'SAUT DE COLONNES
             colonne = mois * 2 - 1
     
     
            'BOUCLE JOURS
            For jour = 1 To nb_jours
                date_du_jour = DateSerial(annee, mois, jour)
                Cells(jour + 2, colonne) = date_du_jour
     
                'TEST WEEKEND ET COULEURS
                If Weekday(date_du_jour) = 1 Or Weekday(date_du_jour) = 7 Then
                    Cells(jour + 2, colonne).Interior.Color = RGB(150, 200, 240)
                    Cells(jour + 2, colonne + 1).Interior.Color = RGB(150, 200, 240)
                Else
                    Cells(jour + 2, colonne).Interior.Color = RGB(255, 255, 255)
                    Cells(jour + 2, colonne + 1).Interior.Color = RGB(255, 255, 255)
                End If
     
     
     
    '--------------------------------------BORDURES------------------------------------------------------
     
                'GAUCHES
     
                With Cells(jour + 2, colonne).Borders(xlEdgeBottom)
                 .LineStyle = xlContinuous
                 .Weight = xlHairline
                End With
     
     
                With Cells(jour + 2, colonne).Borders(xlEdgeRight)
                 .LineStyle = xlContinuous
                 .Weight = xlHairline
                End With
     
     
                With Cells(jour + 2, colonne).Borders(xlEdgeLeft)
                 .LineStyle = xlContinuous
                 .Weight = xlThin
                End With
     
                If Weekday(date_du_jour) = 1 Then ' si dimanche
                    With Cells(jour + 2, colonne).Borders(xlEdgeBottom)
                            .LineStyle = xlContinuous
                            .Weight = xlMedium
                    End With
                Else
                    With Cells(jour + 2, colonne).Borders(xlEdgeBottom)
                            .LineStyle = xlContinuous
                            .Weight = xlHairline
                    End With
                End If
     
                If jour = nb_jours Then
                      With Cells(jour + 2, colonne).Borders(xlEdgeBottom)
                     .LineStyle = xlContinuous
                     .Weight = xlThin
                     End With
                End If
     
    '----------------------------------------------------------------------------------------------------
     
                'DROITE
     
     
                With Cells(jour + 2, colonne + 1).Borders(xlEdgeBottom)
                 .LineStyle = xlContinuous
                 .Weight = xlHairline
                End With
     
     
                With Cells(jour + 2, colonne + 1).Borders(xlEdgeRight)
                 .LineStyle = xlContinuous
                 .Weight = xlHairline
                End With
     
     
                With Cells(jour + 2, colonne + 1).Borders(xlEdgeLeft)
                 .LineStyle = xlContinuous
                 .Weight = xlThin
                End With
     
                If Weekday(date_du_jour) = 1 Then ' si dimanche
                    With Cells(jour + 2, colonne + 1).Borders(xlEdgeBottom)
                            .LineStyle = xlContinuous
                            .Weight = xlMedium
                    End With
                Else
                    With Cells(jour + 2, colonne + 1).Borders(xlEdgeBottom)
                            .LineStyle = xlContinuous
                            .Weight = xlHairline
                    End With
                End If
     
                If jour = nb_jours Then
                      With Cells(jour + 2, colonne + 1).Borders(xlEdgeBottom)
                     .LineStyle = xlContinuous
                     .Weight = xlThin
                     End With
                End If
     
                If mois = 12 Or jour > 28 Then
                    With Cells(jour + 2, colonne + 1).Borders(xlEdgeRight)
                     .LineStyle = xlContinuous
                     .Weight = xlThin
                    End With
                End If
     
    '-----------------------------------------------------------------------------------------------------
     
     
            Next
     
      Next
      'ci-dessous, réintégration des données
      '**************************
    'i = 1
    For i = 1 To UBound(tb)
      Cmois = Split(tb(i), "|")(0): Cjour = Split(tb(i), "|")(1): Cvaleur = Split(tb(i), "|")(2)
      Ccouleur = Split(tb(i), "|")(3)
      For Each cel In Plg
        If WorksheetFunction.IsEven(cel.Column) = False Then
          If Month(CDate(cel)) = Val(Cmois) And Day(CDate(cel)) = Val(Cjour) Then
            cel(1, 2) = Cvaleur: cel(1, 2).Interior.Color = Ccouleur
            'i = i + 1
          End If
        End If
      Next cel
    Next i
    '***************************************
     
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: 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...)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 6
    Par défaut
    Merci M'sieur !

    ça marche uniquement pour les initiales effectivement.
    Pour les Notes je vais essayer d'adapter ce code pour Textbox_note dans l'UserForm.

    Il me faut encore le temps pour que je comprenne vos parties de code.

    J'ai commencé il y a 2 semaine et j'ai appris avec les cours et tutoriels Excel : http://excel.developpez.com/cours/

    J'ai aussi ceci :
    http://livre.fnac.com/a5268663/Frede...et-langage-VBA
    Mais en réalité il n'est pas très utile puisque je trouve la plupart des codes sur google.

    Par contre j'ai du mal expliquer je voulais que lorsque je change d'année les données inscrites restent sur l'année 2013. Mais ne s'affichent pas en 2014. Et quand je reviens en 2013 les données sont bien présentes.


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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Par contre j'ai du mal expliquer je voulais que lorsque je change d'année les données inscrites restent sur l'année 2013. Mais ne s'affichent pas en 2014. Et quand je reviens en 2013 les données sont bien présentes.
    Alors ma proposition aurait été plus simple. Avant de changer ma proposition, j'attends de savoir à ce sujet :
    Pour les Notes je vais essayer d'adapter ce code pour Textbox_note dans l'UserForm.
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: 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...)

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 6
    Par défaut
    J'ai essayé avec ça :

    http://silkyroad.developpez.com/VBA/UserForm/#LV-F

    Ça marche mais le problème c'est que le texte présent dans le "Textbox_notes" n'appartient pas à la cellule en question.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 6
    Par défaut
    Citation Envoyé par Arios91270 Voir le message
    Pour les Notes je vais essayer d'adapter ce code pour Textbox_note dans l'UserForm.
    J'ai passé ma journée pour tester la solution mais sans succès.

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Mais qu'est-ce que sont tes notes ?, des commentaires de cellule ? quand je saurai, je regarderai (plus avant ce soir)
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: 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...)

  8. #8
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 6
    Par défaut
    Quand je clique sur une cellule un "UserForm1" apparaît.
    Je remplis alors les différents champs.
    Initiale, Couleurs, et Notes.

    Quand je valide la cellule prend alors les valeurs "Interior.color" choisi et affiche l'initiale dans la cellule. Jusque là c'est bon.

    Le texte écrit dans la zone note dois rester visible uniquement dans l'userform et doit être présent uniquement dans la cellule choisis.

    Je veux que lorsque je re-clique sur cette cellule le texte personnalisé écrit dans le "textbox_note" s'affiche.

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Le texte écrit dans la zone note dois rester visible uniquement dans l'userform et doit être présent uniquement dans la cellule choisis
    Je ne comprends toujours pas, dans la cellule choisie, comme tu dis, il y a déjà les initiales,
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: 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...)

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 6
    Par défaut
    Citation Envoyé par casefayere Voir le message
    Je ne comprends toujours pas, dans la cellule choisie, comme tu dis, il y a déjà les initiales,
    oui mais ce ne sont que des initiales moi je veux ajouter des détails supplémentaire par le biais de la zone texte.

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

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    N'as-tu pas aussi court de tout mettre soit dans ton textbox, soit dans ta zone de texte, ça m'a l'air tarabiscoté ton histoire.
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: 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...)

Discussions similaires

  1. [XL-2007] utilisation optionbutton dans userform avec textbox
    Par r0man0 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/05/2013, 13h35
  2. [XL-2010] Userform avec textbox et combobox
    Par tompom3108 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/04/2012, 11h17
  3. [XL-2003] Ne pas charger un userform si textbox non vide
    Par mikadoo57 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/04/2012, 12h54
  4. Plantage excel lié à userform et textbox
    Par lemomow dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/11/2010, 17h02
  5. [VBA-E] UserForm avec textbox "Dynamique"
    Par Alex_Kidd dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/05/2006, 00h29

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