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 :

Format écriture post formulaire


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 491
    Par défaut Format écriture post formulaire
    Bonjour,

    J'en ai marre à canard de ce formulaire !

    Voilà mon problème :
    J'ai un formulaire qui me permet de saisir des informations dans un onglet d'un classeur sous excel. J'ai paramètrer toutes les cellules de l'onglet en format Times New Roman et lorsque les données sont enregistrées depuis le formulaire, elles sont en Colibri ????


    Est ce que quelqu'un peut m'orienter car j'ai trifouillé sans réussite ?

    Merci d'avance

    nini

  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,

    Mes dons de voyance sont des plus limités. Si tu postais ton code ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 491
    Par défaut
    bonjour Daniel et désolé je ne pensais pas que le code entrait en jeu par rapport à ce problème:

    Voici le code du formule
    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
     
     
    Private Sub CommandButton1_Click()
    Module1.enregistre
    End Sub
     
    Private Sub CommandButton2_Click()
    Unload UserForm1
    End Sub
     
    Private Sub ComboBox2_Change()
    Dim vrech As Range
    'je recherche dans la colonne C la valeur de la combo
    Set vrech = Sheets("Liste").Columns("C:C").Find(Me.ComboBox2.Value)
     
    'si je trouve une valeur alors j'affiche la valeur correspondante de la
    'colonne D dans le textbox
    If Not vrech Is Nothing Then
      Me.TextBox3.Value = vrech.Offset(0, 1).Value
     
    'sinon j'affiche un message
    Else
    MsgBox "Aucune valeur trouvée!" & vbCrLf & vbCrLf & _
     "Si vous voulez intégrer cette plante dans les plantes standard, il faut la renseigner dans l'onglet Liste"
     
    End If
     
     
    End Sub
     
     
     
     
    Private Sub ComboBox4_Change()
    Dim vrech_code As Range
     
     
     
     
        Sheets("TCD").Select
        Range("B6").Select
     
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Matériel utilisé" _
            ).CurrentPage = "(Tous)"
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Opération" _
            ).CurrentPage = "(Tous)"
     
        ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
     
     
     
        On Error GoTo Repmacro
            ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Matériel utilisé" _
            ).CurrentPage = UserForm1.ComboBox3.Value
     
     
           On Error GoTo Repmacro2
                ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Opération" _
                ).CurrentPage = UserForm1.ComboBox4.Value
     
     
     
            If Not IsNumeric(Application.Match(UserForm1.TextBox3.Value, [TCD!A:A], 0)) Then
            MsgBox "Il n'y a pas de statistique pour la plante " & ComboBox2 & " travaillé avec " & ComboBox3 & " pour faire l'opération " & ComboBox4
     
            UserForm1.TextBox9.Value = ((UserForm1.TextBox5.Text) - (UserForm1.TextBox6.Text)) / (UserForm1.TextBox5.Text)
            UserForm1.TextBox9.Value = Format(UserForm1.TextBox9.Value, "0%")
     
            UserForm1.TextBox10.Value = (UserForm1.TextBox6.Text) / ((UserForm1.TextBox11.Text) + ((UserForm1.TextBox12.Text) / 60))
            UserForm1.TextBox10.Value = Format(UserForm1.TextBox10.Value, "#")
     
            Sheets("donnees").Select
            Range("A7038").Select
            Selection.End(xlDown).Select
            Exit Sub
        End If
     
     
     
     
    'je recherche dans la colonne A la valeur de la Textbox "Code Produit"
    Set vrech_code = Sheets("TCD").Columns("A:A").Find(Me.TextBox3.Value)
     
    'si je trouve une valeur alors j'affiche la valeur correspondante de la colonne B dans la TextBox7 et celle de la colonne C dans la TextBox8
        If Not vrech_code Is Nothing Then
                    Me.TextBox7.Value = ((vrech_code.Offset(0, 1).Value) - (vrech_code.Offset(0, 2).Value)) / (vrech_code.Offset(0, 1).Value)
                    Me.TextBox7.Value = Format(Me.TextBox7, "0%")
     
                    Me.TextBox8.Value = (vrech_code.Offset(0, 2).Value) / (vrech_code.Offset(0, 3).Value)
                    Me.TextBox8.Value = Format(Me.TextBox8, "#")
     
     
    'sinon j'affiche un message
        Else
            MsgBox "Aucune valeur trouvée pour la plante " & ComboBox2 & " !"
        End If
     
                UserForm1.TextBox9.Value = ((UserForm1.TextBox5.Text) - (UserForm1.TextBox6.Text)) / (UserForm1.TextBox5.Text)
                UserForm1.TextBox9.Value = Format(UserForm1.TextBox9.Value, "0%")
     
                UserForm1.TextBox10.Value = (UserForm1.TextBox6.Text) / ((UserForm1.TextBox11.Text) + ((UserForm1.TextBox12.Text) / 60))
                UserForm1.TextBox10.Value = Format(UserForm1.TextBox10.Value, "#")
     
        Sheets("donnees").Select
        Range("A7038").Select
        Selection.End(xlDown).Select
     
        Exit Sub
     
     
        On Error GoTo 0
        GoTo Repmacro
     
        On Error GoTo 0
        GoTo Repmacro2
     
    Repmacro:
    MsgBox "Ce matériel n'existe pas, il faut le créer dans l'onglet Liste pour les prochaines fabrications" & vbCrLf & vbCrLf & _
     "Il y a donc pas de statistique moyenne pour ce matériel"
     
                UserForm1.TextBox9.Value = ((UserForm1.TextBox5.Text) - (UserForm1.TextBox6.Text)) / (UserForm1.TextBox5.Text)
                UserForm1.TextBox9.Value = Format(UserForm1.TextBox9.Value, "0%")
     
                UserForm1.TextBox10.Value = (UserForm1.TextBox6.Text) / ((UserForm1.TextBox11.Text) + ((UserForm1.TextBox12.Text) / 60))
                UserForm1.TextBox10.Value = Format(UserForm1.TextBox10.Value, "#")
        Sheets("donnees").Select
        Range("A7038").Select
        Selection.End(xlDown).Select
    Exit Sub
     
     
    Repmacro2:
    MsgBox "Cette opérationn'existe pas, il faut la créer dans l'onglet Liste pour les prochaines fabrications" & vbCrLf & vbCrLf & _
     "Il y a donc pas de statistique moyenne pour cette opération"
     
                UserForm1.TextBox9.Value = ((UserForm1.TextBox5.Text) - (UserForm1.TextBox6.Text)) / (UserForm1.TextBox5.Text)
                UserForm1.TextBox9.Value = Format(UserForm1.TextBox9.Value, "0%")
     
                UserForm1.TextBox10.Value = (UserForm1.TextBox6.Text) / ((UserForm1.TextBox11.Text) + ((UserForm1.TextBox12.Text) / 60))
                UserForm1.TextBox10.Value = Format(UserForm1.TextBox10.Value, "#")
        Sheets("donnees").Select
        Range("A7038").Select
        Selection.End(xlDown).Select
    Exit Sub
     
     
    End Sub
    Et voici le code dans le module :
    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
    Sub pour_mettre_une_liste_comme_source_de_donnees_d_un_TCD()
    'Cette macro est à exécuter une seule fois au début pour paramètrer le TCD selon les données du tableau que l'on a paramètré comme une liste
    Sheets("TCD").PivotTables(1).SourceData = "donnees!" & _
    Sheets("donnees").ListObjects("Liste1").Range.Address(, , xlR1C1)
    End Sub
     
     
     
     
     
    Sub deleteOldItemsWB()
    'Cette macro permet de purger le TCD sous excel 2003 car le système garde en mémoire les requêtes
     
     
    'gets rid of unused items in pivotTable
    'Debra Dalgleish - based on MSKB (202232)
    Dim ws As Worksheet
    Dim pt As PivotTable
    Dim pf As PivotField
    Dim pi As PivotItem
    Dim i As Integer
    On Error Resume Next
    For Each ws In ActiveWorkbook.Worksheets
        For Each pt In ws.PivotTables
            pt.RefreshTable
            For Each pf In pt.PivotFields
                For Each pi In pf.PivotItems
                    If pi.RecordCount = 0 And _
                    Not pi.IsCalculated Then
                    pi.Delete
                    End If
                Next
            Next
        Next
    Next
    End Sub
     
     
     
     
    Sub enregistre()
     
        Dim EntreePlus As Worksheet, ZZ As Range, Erg, i As Integer, AA As Range, BB As Range, EE As Range, XX As Range, YY As Range, FF As Range, GG As Range, HH As Range, II As Range, JJ As Range, KK As Range, LL As Range, MM As Range, NN As Range, OO As Range
        Dim valeur As String
     
        Set EntreePlus = ThisWorkbook.Worksheets("donnees")
     
        Application.ScreenUpdating = True
     
        deleteOldItemsWB
     
     
        'Pour positionner la cellule active en dehors de la liste car si dans la liste la nouvelle ligne se met
        'en dehors de la liste
        Range("A1").Select
     
     
     
     
        'Quelques vérifications sur la saisie des données
        If UserForm1.TextBox1.Value <> Format(UserForm1.TextBox1, "dd/MM/yyyy") Then
            MsgBox "Veuillez renseigner la date sous le format jj/mm/aaaa"
            Exit Sub
        End If
     
        If UserForm1.TextBox1.Value = "" Then
            MsgBox "Veuillez renseigner la date de fabrication"
            Exit Sub
        End If
     
        If UserForm1.ComboBox1.Value = "" Then
            MsgBox "Veuillez renseigner le nom de l'opérateur!"
            Exit Sub
        End If
     
        If UserForm1.TextBox5.Value = "" Then
            MsgBox "Veuillez entrer une quantité entrée"
            Exit Sub
        End If
     
        If UserForm1.TextBox6.Value = "" Then
            MsgBox "Veuillez entrer une quantité sortie"
            Exit Sub
        End If
     
        If UserForm1.TextBox11.Value = "0" And UserForm1.TextBox12.Value = "0" Then
            MsgBox "Veuillez entrer le temps de la fabrication"
            Exit Sub
        End If
     
        If UserForm1.TextBox2.Value = "" Then
            UserForm1.TextBox2.Value = "-"
        End If
     
        If UserForm1.ComboBox3.Value = "" Then
            MsgBox "Veuillez entrer le matériel utilisé"
            Exit Sub
        End If
     
        If UserForm1.ComboBox4.Value = "" Then
            MsgBox "Veuillez entrer l'opération réalisée"
            Exit Sub
        End If
     
        If UserForm1.TextBox13.Value = "" Then
            UserForm1.TextBox13.Value = "-"
        End If
     
     
        Ligne = EntreePlus.Cells(16384, 1).End(xlUp).Offset(1, 0).Row
        Set XX = EntreePlus.Cells(Ligne, 1) 'Date
        Set ZZ = EntreePlus.Cells(Ligne, 2) 'Opérateur
        Set YY = EntreePlus.Cells(Ligne, 3) 'Plante utilisée
        Set AA = EntreePlus.Cells(Ligne, 4) 'Code produit de la plante utilisée
        Set BB = EntreePlus.Cells(Ligne, 5) 'N° de lot
        Set EE = EntreePlus.Cells(Ligne, 6) 'Quantité entrée
        Set GG = EntreePlus.Cells(Ligne, 7) 'Quantité sortie
        Set LL = EntreePlus.Cells(Ligne, 8) 'Temps passé
        Set MM = EntreePlus.Cells(Ligne, 9) 'Matériel utilisé
        Set NN = EntreePlus.Cells(Ligne, 10) 'Opération
        Set OO = EntreePlus.Cells(Ligne, 11) 'Perte
        Set PP = EntreePlus.Cells(Ligne, 12) 'Rendement
        Set QQ = EntreePlus.Cells(Ligne, 13) 'Client
        Set RR = EntreePlus.Cells(Ligne, 14) 'Commentaire
        Set SS = EntreePlus.Cells(Ligne, 15) 'Année
     
        XX.Offset(0, i).Value = UserForm1.TextBox1.Text
        ZZ.Offset(0, i).Value = UserForm1.ComboBox1.Value
        YY.Offset(0, i).Value = UserForm1.ComboBox2.Value
        AA.Offset(0, i).Value = UserForm1.TextBox3.Text
        BB.Offset(0, i).Value = UserForm1.TextBox4.Text
        EE.Offset(0, i).Value = UserForm1.TextBox5.Text
        GG.Offset(0, i).Value = UserForm1.TextBox6.Text
     
        LL.Offset(0, i).Value = (UserForm1.TextBox11.Text) + ((UserForm1.TextBox12.Text) / 60)
        MM.Offset(0, i).Value = UserForm1.ComboBox3.Value
        NN.Offset(0, i).Value = UserForm1.ComboBox4.Value
        OO.Offset(0, i).Value = ((UserForm1.TextBox5.Text) - (UserForm1.TextBox6.Text)) / (UserForm1.TextBox5.Text)
        PP.Offset(0, i).Value = (UserForm1.TextBox6.Text) / ((UserForm1.TextBox11.Text) + ((UserForm1.TextBox12.Text) / 60))
        QQ.Offset(0, i).Value = UserForm1.TextBox2.Value
        RR.Offset(0, i).Value = UserForm1.TextBox13.Value
        SS.Offset(0, i).Value = Year(UserForm1.TextBox1.Text)
     
     
    Unload UserForm1
     
    Application.ScreenUpdating = True
     
        MsgBox "Les données ont été enregistrées avec succés"
     
    End Sub

    Tu ne seras pas perdu car il a été fait en grande (oups très grande) partie par ton aide.

    Merci encore


    Nini

  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
    Tu ne seras pas perdu car il a été fait en grande (oups très grande) partie par ton aide.
    Je l'ai vu. Pourvu que ce ne soit pas de ma faute
    Mais je n'arrive à rien avec le classeur que j'ai. Mets le classeur avec l'erreur en pièce jointe (sans données confidentielles). Et donne-moi des éléments pour remplir le formulaire.

  5. #5
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Citation Envoyé par liop49 Voir le message
    J'en ai marre à canard de ce formulaire !
    Même avec des tendances Ornithologiques, ça ne sert à rien de donner des noms d'oiseaux aux polices qui te déplaisent

    Il y a de fortes chances que la police que tu invoques soit la Calibri et non la colibri, mais bon ne polémiquons pas, ça ne vaut pas une prise de bec...

    Sinon, piste possible : en quelle police ton Excel est-il par défaut ?, si tu crées de nouvelles feuilles, c'est cette police là qui sera prise en compte et le collage de données gardera par défaut le format d'origine sans se soucier de ton formatage...

    Cordialement,

    Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

    Didier

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 491
    Par défaut
    @Didier : lorsque j'ouvre une nouvelle feuille je suis en Arial sinon çà m'a fait du bien de lire ton post

    @Daniel : voir pièce jointe
    Fichiers attachés Fichiers attachés

  7. #7
    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
    Je t'avais demandé des données pour remplir l'userform.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 491
    Par défaut
    Bonjour

    oups desole pour temps de reponse mais le week end a ete long

    Quelles types de donnees veut tu?
    Il suffit de reproduire un enregistrement, non?

    Nini

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Tu pourrais modifier le style par défaut de tes cellules... Ce serait éventuellement une solution.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. Post formulaire avec refresh et js
    Par bebert3 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/07/2007, 10h45
  2. Format écriture texbox
    Par MAMANHOU dans le forum IHM
    Réponses: 5
    Dernier message: 15/06/2007, 10h28
  3. Post formulaire et action
    Par Maria1505 dans le forum Langage
    Réponses: 5
    Dernier message: 11/12/2006, 20h41
  4. Timeout sur POST formulaire avec checkbox
    Par shyangel dans le forum Langage
    Réponses: 16
    Dernier message: 11/05/2006, 12h59
  5. Format mail du formulaire
    Par tintin174 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 26/04/2006, 16h11

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