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

Conception Discussion :

Conception - Communication entre Excel et Access [XL-2010]


Sujet :

Conception

  1. #1
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Février 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut Conception - Communication entre Excel et Access
    Bonjour à tous,

    Je suis en pleine réalisation d'un "logiciel" de gestion de commande/stock totalement adapté à mes besoins.
    Excel pour le calcul et Access pour le stockage et communication entre les différents postes de travail.

    Par la suite Access devra migrer vers un serveur SQL ...

    J'aimerai surtout commencer sur des bonnes bases pour ne pas être bloquer par la suite et surtout ne pas construire une usine à gaz !!!

    Actuellement, j'utilise Excel pour la création de commande.
    Excel cherche des données concernant les commande via VBA sur un serveur SQL, table xxx pour la cré ation de commande

    Ce que j'aimerai, une fois le travail terminé sur Excel, transférer ces données dans une table "temporaire".
    Par la suite, vu qu'il y a env. 30 champs par enregistrement et parfois jusqu'à 500 entrée par commande, l'éclater dans différentes tables.
    Style, tblAdresse, tblcommande, tbldetail etc...
    Pour cette opération je pensais pas une requête INSERT

    Lier les différentes table etc...

    Par contre; comment transférer d'une manière sure les données d'Excel vers Access ...

    Par la suite, j'aimerai aussi faire accéder mes collaborateurs au détails des commandes, pour l'entrée/sortie du stock.
    Quelle est la solution la plus adaptée // Travailler dans Excel avec un Ruban Access ou directement dans Access limité ?

    Quelques conseils pour la conception seront le bienvenus.

    Merci

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 419
    Points : 16 262
    Points
    16 262
    Par défaut
    Bonjour

    Pourquoi Excel ?

    Access est parfaitement à même d’établir des commandes et même de façon plus simple qu'Excel avec les formulaires ad hoc. Même si les données migrent à terme vers une base Mysql, tu peux garder l'interface Access (base frontale)

    A noter que des commandes, de même que des factures, nécessitent 2 tables et non une : table des partie n'existant qu'un fois, souvent appelée table des en-têtes, et table correspondant aux lignes pouvant exister de 1 à n selon le nombre d'éléments commandés.

    En principe la table Adresses existe avant d'établir les commandes, ou se met à jour au moment de créer la commande.

    Privilégier Excel pour d'éventuelles statistiques de ventes et, si cela est plus pratique pour ton équipe, pour exécuter des requêtes permettant de gérer les stocks.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  3. #3
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Février 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut
    Quelle bonne question.... Pourquoi Excel ?

    Dans mon cas, Excel est super pratique pour faire les calculs. Et il y en a tous pleins
    Ainsi que des Conditions Select case ....
    Ainsi que la gestion de la construction détails de la "commande"

    Dans les grandes lignes:
    A : Reférences commande
    B : Récupération du code commande et date de livraison du Serveur SQL - Logiciel spécifique à notre métier
    C : Construction du détails de la commande par rapport à une version
    Nom : SnipA.JPG
Affichages : 345
Taille : 43,7 Ko

    A partir de là, je crée un genre de détail
    Selon, la version, le conditionnement etc...
    Là, il y a plein de code/calcul maison ...
    Nom : SnipB.JPG
Affichages : 334
Taille : 51,4 Ko

    Et la suite, la création de fiche pour identifier les palettes
    Avec Code à barre etc....

    Puis le transfert des données, "Pour l'instant dans un fichier excel"
    Nom : snuipC.JPG
Affichages : 304
Taille : 34,5 Ko
    Et c'est là que j'aimerai mettre le transfert vers Access // puis vers SQL

    Dans une table TEMPORAIRE qui regroupe tout
    Puis à partir de cette TABLE TEMPORAIRE, par une requete, eclater les données
    TABLE COMMANDE; TABLE LIVRAISON; TABLE DETAILS; TABLE CODE PALETTE etc...

    Ne pas passer par Excel, ca risque d'etre compliqué. J'ai déja essayé sur Access, mais c'est carrement la galère....

    Un petit bout de 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
    230
    231
    232
    233
    234
    Public Sub calcul()
     
    Dim xlapp       As Excel.Application
    Dim xlsheet     As Excel.Worksheet
    Dim xlBook      As Excel.Workbook
    Dim X           As Integer
    Dim anzahlPal   As Integer
    Dim Auflage As Long, exPal As Long, ExVB As Long, VBlage As Long, lagPal As Long, gewichtex As Long
    Dim aufTrag As String, matchCode As String, verSSion As String, Verpackung As String
    Dim Adresse As String, straSse As String, oRt As String
    Dim belege As Long, auflageohne As Long
    Dim nrcodebarre As Integer
    Dim mgljobno    As String
    Dim mgldelivery As Date
     
    On Error GoTo gestionerreur
    Set xlapp = Excel.Application
     
    Call transfin
     
    Worksheets("historik").Activate
    With Worksheets("historik")
         nrcodebarre = Application.WorksheetFunction.Max(Columns(1))
    End With
     
    Set xlBook = xlapp.ActiveWorkbook
     
    If USFEintrag.belege = "" Then USFEintrag.belege.Value = "0" Else
    If USFEintrag.gewex = "" Then USFEintrag.gewex.Value = "0" Else
     
    aufTrag = USFEintrag.Objekt
    matchCode = USFEintrag.Auftragnr & " / " & USFEintrag.HeftNr
    verSSion = USFEintrag.Version
    Auflage = USFEintrag.Auflagegesamt
    belege = USFEintrag.belege
    Adresse = USFEintrag.Adresse.Column(1)
    straSse = USFEintrag.Adresse.Column(2)
    oRt = USFEintrag.Adresse.Column(3)
    auflageohne = Auflage - belege
    Verpackung = USFEintrag.Verpackung
    mgljobno = USFEintrag.JobMgl
    mgldelivery = USFEintrag.deliverymgl
    gewichtex = USFEintrag.gewex
     
    Select Case USFEintrag.ExVB
            Case Is = ""
                anzahlPal = InputBox("Anzahl von Paletten // Wickel")
                If anzahlPal < 1 Then
                MsgBox "Ich brauche min. 1 Pal."
                Exit Sub
                Else
                End If
     
            Case Else
                ExVB = USFEintrag.ExVB
                If USFEintrag.VBlage = "" Then VBlage = "1" Else VBlage = USFEintrag.VBlage
                If USFEintrag.Lage = "" Then lagPal = "1" Else lagPal = USFEintrag.Lage
                exPal = ExVB * VBlage * lagPal
                anzahlPal = WorksheetFunction.RoundUp((auflageohne / exPal), 0)
     
    End Select
     
     
    'Ajouter une feuille de calcul
        Set xlsheet = xlBook.Worksheets.Add
        xlsheet.name = "pzt_Liste"
     
    'le titre - Entete
        xlsheet.Cells(1, 1) = "Auftrag:"
        xlsheet.Cells(1, 2) = matchCode & "_" & aufTrag
        xlsheet.Cells(2, 1) = "Split:"
        xlsheet.Cells(2, 2).NumberFormat = "@"
        xlsheet.Cells(2, 2) = verSSion
        xlsheet.Cells(1, 5) = "Auflage:"
        xlsheet.Cells(1, 6) = Auflage
        xlsheet.Cells(1, 6).NumberFormat = "###,###"
        xlsheet.Cells(2, 8).FormulaLocal = "=summe(B:B)"
        xlsheet.Cells(2, 8).NumberFormat = "###,###"
        xlsheet.Cells(1, 7) = "Bereist.:"
        xlsheet.Cells(1, 8) = mgldelivery
        xlsheet.Cells(2, 9) = Date$
        xlsheet.Cells(1, 9) = Environ("Username")
        xlsheet.Cells(3, 1) = "Palette Nr."
     
        Select Case USFEintrag.Verpackung.Value
            Case Is = ("Gewickelt")
                xlsheet.Cells(3, 2) = "Exemplare im Wickel"
                xlsheet.Cells(3, 3) = ""
                xlsheet.Cells(3, 4) = ""
                xlsheet.Cells(3, 5) = ""
                xlsheet.Cells(3, 6) = ""
                xlsheet.Cells(3, 7) = ""
     
            Case Is = ("auf Stange"), ("Stange")
                xlsheet.Cells(3, 2) = "Exemplare auf der Palette"
                xlsheet.Cells(3, 3) = "Exemplare / Stange"
                xlsheet.Cells(3, 4) = "Stangen volle Palette"
                xlsheet.Cells(3, 5) = "Anzahl Stange auf diese Palette" ' Attention inverse
                xlsheet.Cells(3, 7) = "Anzahl Brettchen" ' Attention inverse
                xlsheet.Cells(3, 6) = "Ex. in der letzte Stange"
                xlsheet.Cells(2, 3) = "Maße der Brettchen"
                'Cellule Brettchen Masse
                Range("E2:F2").Select
                    With Selection.Interior
                        .Pattern = xlSolid
                        .PatternColorIndex = xlAutomatic
                        .ThemeColor = xlThemeColorDark1
                        .TintAndShade = -0.14996795556505
                        .PatternTintAndShade = 0
                    End With
     
            Case Is = ("Plano (Roto5)")
                xlsheet.Cells(3, 2) = "Exemplare auf der Palette"
                xlsheet.Cells(3, 3) = ""
                xlsheet.Cells(3, 4) = ""
                xlsheet.Cells(3, 5) = ""
                xlsheet.Cells(3, 6) = ""
     
            Case Else
                xlsheet.Cells(3, 2) = "Exemplare auf der Palette"
                xlsheet.Cells(3, 3) = "Exemplare im VB"
                xlsheet.Cells(3, 4) = "VB/Lage"
                xlsheet.Cells(3, 5) = "Anzahl VB auf diese Palette"
                xlsheet.Cells(3, 6) = "Volle Lagen"
                xlsheet.Cells(3, 7) = "+ Pakete"
     
      End Select
     
        xlsheet.Cells(3, 8) = "Verpackung"
        xlsheet.Cells(3, 9) = "Unterschrift"
        xlsheet.Cells(3, 10) = "Matchcode"
        xlsheet.Cells(3, 11) = "Auftrag"
        xlsheet.Cells(3, 12) = "Split"
        xlsheet.Cells(3, 13) = "Auflage"
        xlsheet.Cells(3, 14) = "Adresse"
        xlsheet.Cells(3, 15) = "Strasse"
        xlsheet.Cells(3, 16) = "Ort"
        xlsheet.Cells(3, 17) = "AnzahlPaletten"
        xlsheet.Cells(3, 18) = "CodePalette"
        xlsheet.Cells(3, 19) = "JobNomegal"
        xlsheet.Cells(3, 20) = "TerminMegal"
        xlsheet.Cells(3, 21) = "Gewicht/Ex."
        xlsheet.Cells(3, 22) = "Gewicht/Pal."
     
    'debut de la boucle
     
    For X = 1 To anzahlPal Step 1
     
     Select Case USFEintrag.ExVB
       Case Is = ""
            Cells(X + 3, 1) = X
            Cells(X + 3, 3) = ""
            Cells(X + 3, 4) = ""
            Cells(X + 3, 8) = Verpackung
            Cells(X + 3, 10) = matchCode
            Cells(X + 3, 11) = aufTrag
            Cells(X + 3, 12).NumberFormat = "@"
            Cells(X + 3, 12) = verSSion
            Cells(X + 3, 13) = Auflage
            Cells(X + 3, 13).NumberFormat = "###,###"
            Cells(X + 3, 14) = Adresse
            Cells(X + 3, 15) = straSse
            Cells(X + 3, 16) = oRt
            Cells(X + 3, 17) = anzahlPal
            Cells(X + 3, 19) = mgljobno
            Cells(X + 3, 20) = mgldelivery
            Cells(X + 3, 21) = gewichtex
            Cells(X + 3, 22).FormulaLocal = "=(B" & X + 3 & ") * (U" & X + 3 & ")/1000"
     
            Cells(X + 3, 2).NumberFormat = "###,###"
            If exPal * X < auflageohne _
            Then Cells(X + 3, 2) = exPal _
            Else: Cells(X + 3, 2) = auflageohne - (X - 1) * exPal 'Exemplare auf der Palette
     
     
        Case Else
            Cells(X + 3, 1) = X
            Cells(X + 3, 8) = Verpackung
            Cells(X + 3, 10) = matchCode
            Cells(X + 3, 11) = aufTrag
            Cells(X + 3, 12).NumberFormat = "@"
            Cells(X + 3, 12) = verSSion
            Cells(X + 3, 13) = Auflage
            Cells(X + 3, 13).NumberFormat = "###,###"
            Cells(X + 3, 14) = Adresse
            Cells(X + 3, 15) = straSse
            Cells(X + 3, 16) = oRt
            Cells(X + 3, 17) = anzahlPal
            Cells(X + 3, 19) = mgljobno
            Cells(X + 3, 20) = mgldelivery
            Cells(X + 3, 21) = gewichtex
            Cells(X + 3, 22).FormulaLocal = "=(B" & X + 3 & ") * (U" & X + 3 & ")/1000"
     
            Cells(X + 3, 2).NumberFormat = "###,###"
            If exPal * X < auflageohne _
                 Then Cells(X + 3, 2) = exPal _
                 Else: Cells(X + 3, 2) = auflageohne - (X - 1) * exPal 'Exemplare auf der Palette
     
                 Select Case USFEintrag.Verpackung.Value
                     Case Is = ("Gewickelt")
                         Cells(X + 3, 3) = "" 'ExVB
                         Cells(X + 3, 4) = ""
                         Cells(X + 3, 5) = ""
                         Cells(X + 3, 6) = ""
                         Cells(X + 3, 7) = ""
     
                     Case Is = ("auf Stange")
                         Cells(X + 3, 3) = ExVB
                         Cells(X + 3, 4) = VBlage
                         Cells(X + 3, 5).FormulaLocal = "=aufrunden((B" & X + 3 & ") /(C" & X + 3 & ");0)" 'Anzahl VB auf d palette
                         Cells(X + 3, 7) = ""
                         If Cells(X + 3, 2) = Cells(X + 3, 3) * Cells(X + 3, 5) Then Cells(X + 3, 6) = "" _
                         Else Cells(X + 3, 6).FormulaLocal = "=aufrunden((B" & X + 3 & ") - (C" & X + 3 & ")*((E" & X + 3 & ")-1);0)" 'Attention inverse Nbre Brettchen
     
                     Case Is = ("Plano (Roto5)")
                         Cells(X + 3, 3) = ""
                         Cells(X + 3, 4) = ""
                         Cells(X + 3, 5) = ""
                         Cells(X + 3, 6) = ""
                         Cells(X + 3, 7) = ""
     
                     Case Else
                          Cells(X + 3, 3) = ExVB
                          Cells(X + 3, 4) = VBlage
                          Cells(X + 3, 5).FormulaLocal = "=aufrunden((B" & X + 3 & ") /(C" & X + 3 & ");0)" 'Anzahl VB auf d palette
                          Cells(X + 3, 6).FormulaLocal = "=abrunden((E" & X + 3 & ") / " & VBlage & ";0)" 'Volle Lagen
                          Cells(X + 3, 7).FormulaLocal = "=aufrunden(((B" & X + 3 & ")-((F" & X + 3 & " * " & VBlage & ")* C" & X + 3 & ")) / " & ExVB & " ;0)" 'Anzahl Pakete
     
                   End Select
         End Select
     
         'Creation du code
          Cells(X + 3, 18).NumberFormat = "@"
          Cells(X + 3, 18) = Format(mgljobno, "00000") & Format(nrcodebarre, "000") & Format(X, "000")
    Vous en pensez quoi ?

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 772
    Points : 28 633
    Points
    28 633
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Comme l'a clairement écrit dans sa réponse Chris, que je salue au passage, Access peut gérer cela plus aisément qu'excel.
    Je ne vois pas où est la difficulté d'effectuer des calculs dans Access.
    Excel n'est pas un gestionnaire de base de données
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 419
    Points : 16 262
    Points
    16 262
    Par défaut
    Bonjour

    Je ne pige pas trop pourquoi le détail de la commande n'est pas également récupéré du serveur.

    Access sait calculer pas mal de choses et souvent passer par des requêtes est beaucoup simple de d'écrire du code avec des select case (qu'Access VBA gère également).
    (Un exemple vécu : lors d'un cours sur Access, j'ai réalisé en moins d'une heure par requêtes le besoin décrit par mes clients, maîtrisant parfaitement Excel VBA Et prévoyant 1 à 2 semaines de développement...)

    Comme déjà dit les formulaires intégrés sont réalisables de façon plus simple que des userforms...

    Edit : coucou Philippe...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  6. #6
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Février 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut
    Merci pour vos réponses et aide.

    En gros, si je comprend bien, il vaut mieux utiliser Access avec un Formulaire non lié à une table directement.
    Qui lors d'une action (bttn....click) transfère les données dans les tables respectives via une requête !

    Concernant les états, je suppose qu'il faudra mettre en place un état par variante de conditionnement (car la mise en page est différente)


    Est-ce que je peux récuperer une partie des codes de calcul d'Excel vers Access ?
    Dans Access, est-ce que je peux mettre des formules comme dans Excel ?

    Mon soucis, c'est de bien commencer ma base de donnée pour ne pas etre bloqué par la suite et d'avoir une solution que l'on peut développer dans tous les sens.
    Avec Excel, je me rend compte que c'est une solution à voie unique et refermé sur lui même ...

  7. #7
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 419
    Points : 16 262
    Points
    16 262
    Par défaut
    RE

    Si tu structures bien tes tables, le formulaire peut inclure un un plusieurs sous-formulaires, le tout lié aux tables...

    Dans Access on peut utiliser les calculs arithmétiques et il y a aussi diverses fonctions.

    De façon générale on affiche les résultats des calculs dans des formulaires ou des états mais on ne les stocke pas forcément dans les tables.

    Les états peuvent aussi contenir des sous-états mais selon ton besoin, tu peux utiliser plusieurs états et chaîner l'impression.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  8. #8
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Février 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut
    Re,

    Concernant les formules, il est préférable de les placer sur le champ - style valeur par défaut
    ou plutôt dans les paramètres du formulaire en VBA ?

    Style afterupdate ()

    champ x = roundup(ceci * cela / z , 0)

  9. #9
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 419
    Points : 16 262
    Points
    16 262
    Par défaut
    Bonjour

    Comme je le disais, en général on ne stocke le résultat du calcul pas dans la table : donc dans ce cas on ajoute un champ indépendant qui contient la formule : le résultat s'affiche dans le formulaire mais n'est pas sauvegardé.
    (A noter que sur 2010, Microsoft déroge au modèle et accepte des champs calculés mais cela n'apporte rien comme on a pu le voir avec les tests faits ici lors de la sortie de cette version).

    Sinon, on peut utiliser divers événements selon la logique du formulaire : si la saisie d'un champ doit changer la valeur d'un autre, on utilisera Après MAJ du champ saisi.
    On peut dans certains cas utiliser Avant mise à jour du formulaire pour valoriser divers champs...

    Les valeurs par défaut n'utilisent pas les valeurs des autres champs, sauf erreur de ma part...
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  10. #10
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Février 2016
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Février 2016
    Messages : 100
    Points : 49
    Points
    49
    Par défaut
    Merci pour votre aide..

    Je vais me lancer dans la réalisation du projet

    A bientot

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

Discussions similaires

  1. ms query: problème de communication entre excel et access
    Par haddani dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 05/04/2010, 21h51
  2. Réponses: 1
    Dernier message: 29/05/2006, 18h42
  3. [Conception] Communication entre Ecouteur
    Par loic_86 dans le forum Interfaces Graphiques en Java
    Réponses: 8
    Dernier message: 02/05/2006, 13h04
  4. Communication entre Excel et Access
    Par sylvia94 dans le forum Access
    Réponses: 4
    Dernier message: 13/01/2006, 13h43
  5. insert entre excel et access
    Par patmich2 dans le forum ASP
    Réponses: 6
    Dernier message: 06/10/2004, 13h24

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