1er Pas VBA - #confinement

Bonjour à tous ,

J'adresse ma requête pour un accompagnement dans VBA pour une mise en place de USE forme .

J'arrive à ma limite avec les tutos youtube .

Donc l'idée de ce useforme est de créer une feuille de calcule suivant plusieurs critères .

1/ Suivant la configuration du projet : ( notamment 4 choix , notifié dans la liste déroulante ) , je souhaiterais pouvoir récupérer après avoir rentré la valeur de la superficie du projet

- Le prix structure = Feuil "surelevation " -> réponse (C60 à C63) x surface

2/ Plus complexe :

Toujours avec cette même surface , en fonction des éléments cochés , pouvoir récupeper un prix/m² à multipliert par la surface ..

Vous comprendrez mieux après avoir vu le use forme ..

Si quelqu'un peut m'aider ça serait de belle pâque .

Dimitri

Bonjour Dimdiff,

Tu trouveras une proposition en P.J.

J'ai créé :

  • un code d'initialisation des libellés des cases à cocher d'option 2nd oeuvre à partir de la liste présente dans la feuille "SURELEVATION" (UserForm_Activate)
  • une fonction de calcul du TTC Structure (RecupPrixM)
  • une fonction de calcul du TTC 2nd oeuvre (RecupPrix2O)
  • ajouté un bouton dans la feuille "SURELEVATION" pour afficher le formulaire.

Bonjour Gvialles,

Ça me parais incroyable !! Merci pour avoir pris du temps sur ce petit projet .

Afin que de reproduire cette analyse pour les feuilles suivantes , est-il possible de m'expliquer pourquoi tu commences par ?

Dim dblSurface As Double

Dim dblPrixM As Double

Dim dblPrix2O As Double

Pardon pour ces questions , peut-être stupide .

Je vais essayer de réaliser la même chose pour les autres feuilles.

Merci encore , c'est vraiment top

Dimitri

Bonjour Dimitri,

Ta question est loin d'être stupide...

Dans le langage de programmation VBA, il n'y a pas nécessité de déclarer les variables que l'on utilise dans le code (d'ailleurs, l'enregistreur de macro de le fait pas ...(cf document :https://www.excel-pratique.com/fr/telechargements/doc-vba/enregistreur-macro-excel-no467 ).

Toutefois, pour créer des codes lisibles, facile à suivre et pour éviter certains problèmes d'exécution nous avons intérêt à déclarer en les typant toutes les variables utilisées dans la code.

Et dans le cas qui t'occupes, du fait que tu dois faire des opérations arithmétiques avec un certain nombre de variables, j'ai déclaré ces variables en début de module.

Bonsoir Gerard ,

J'ai essayé de réaliser la meme chose pour la page 2 , j'ai un soucis de valeur.

Peux tu m'aider si possible .

Merci par avance

Dimitri

Bonjour Dimitri,

Ce que tu as fait est presque parfait...Ce qui cloche c'est la référence à la plage des options dans le formulaire "Extension".

J'ai corrigé une seule ligne :

Private Sub UserForm_Activate()
    'Initialisation des libellés des options à partir de la liste
    Dim oRange As Range
    Dim oCtl As Control
    Dim i As Integer

    'On affecte la plage de libellé des options présente dans la feuille "SURELEVATION"
    'Set oRange = ThisWorkbook.Worksheets("EXTENSION").Range("B64:C72") 'L'erreur était là...
    Set oRange = ThisWorkbook.Worksheets("EXTENSION").Range("B75:C84")
    i = 1
    'On passe en revue les cases à cocher pour affecter leur libellé avec le texte présent dans la feuille
    For Each oCtl In Me.frmOptions.Controls
        oCtl.Caption = oRange.Cells(i, 1).Value
        i = i + 1
    Next

End Sub

Je joins le classeur corrigé,

Merci Gerard , j'ai finalisé ce que je souhaitais et t'en remercie fortement

Rechercher des sujets similaires à "1er pas vba confinement"