Erreur 424 systematique

bonjour

je me fais aider par l'IA mais ca ne fait pas tout

par contre il explore pour moi les formulations les plus adaptées à mon problème

je lui demande de coder les fonctions et résultats

on a voulu mettre un Userform et chaque fois que j'essaie de le lancer il affiche une erreur "424"

je remercie bien evidemment toute personne qui pourra m'expliquer les différentes possibilités

car j'en ai essayé 3 que vous trouverez dans le module Lancement Projet(programme)

Merci par avance

JPS76

Bonjour,

Le premier souci de votre USF est qu'il manque la combo "cmbmateriau" dans votre USF

Après remplacez le code d'ouverture Initialize comme ceci

Private Sub UserForm_Initialize()

With cmbPluie
    .AddItem "normale"
    .AddItem "battante"
End With

cmbMateriau.List() = Array("tuiles", "ardoises", "zinc", "vegetalise", "bitume", "polycarbonate")
Me.BackColor = RGB(230, 242, 255)
End Sub

Rem :
- Il vous manque les données de ville et de rugosité toiture dans ces deux combos
- Dans votre Private Sub btnReset_Click() lorsque vous videz les combos faites ceci : --> cmbMateriau.ListIndex = -1
- Vous ne devez pas déclarer de DIM sur des objets de votre USF. Exemple : pas de dim cbmpluie
- évitez toujours les accents dans les codes VBA. Pensez toujours anglais au lieu de français. Cela vous évitera quelques fois des soucis

Faites un test et dites-moi

Crdlt

Bonjour,

Votre problème ne se situe pas sans l'ouverture du formulaire mais dans l'initialisation de celui-ci, puisque "cmbPluie' est un contrôle combobox intégré à l'userform, il ne fait pas le déclarer de nouveau, idem pour "cmbmarériaux" sauf que ce dernier est introuvable dans l'userform, ce qui crée une deuxième erreur.

la portion de code corrigée:

Private Sub UserForm_Initialize()
    'Dim cmbPluie As Variant *******************
    cmbPluie.AddItem "normale"
    cmbPluie.AddItem "battante"
    cmbPluie.ListIndex = 0

    Dim matériaux As Variant
    'Dim cmbMateriau As Variant *********************
    Dim m As Variant
    matériaux = Array("tuiles", "ardoises", "zinc", "vegetalise", "bitume", "polycarbonate")
    For Each m In matériaux
        cmbMateriau.AddItem m
    Next m
    cmbMateriau.ListIndex = 0

Cdlt

Désolé Dan, j'avais pas rafraîchi l'affichage!

bonjour a tous les 2

je teste et je vous reviens sitôt corrigé et testé

Cdlt

Rebjr

pas de progrès apparent j'ai supprimé les Dim Combo mais je vous ai copié la photo écran collée dans une feuille intitulée "PHOTOS ECRAN " après compilation projet ,

ca plante

je n'ai pas à saisir de ville en particulier j'ai juste à saisir une valeur CAPE LOCALE pour ensuite déterminer tout un ensemble de paramètres liés à un orage

Mon projet doit être utilisé en expertise Judiciaire donc je ne peux pas rentrer trop dans le détail

merci par avance

PS : A propos j'incrémente la valeur Test dans le nom du fichier

j'ai trouvé mon erreur cmbMatériau s'appelle cmbRugositéToiture

je modifie et vous renvoie la correction

Cdlt

JP

re

@Arturo83 : Pas grave

@Jps76 : Je ne pense pas que vous avez lu complètement ce que je vous ai écrit.

rebjr

la compilation apres modif de ma combo s'est faite sans erreur

reste le lancement qui beugue "erreur 424"

clipboard 08 15 2025 01 2 clipboard 08 15 2025 01

Re

rem : Vous pouvez coller la photo du bug sans reposter à chaque fois votre fichier. J'ai corrigé votre post pour que vous voyiez

Le code à essayer comme ceci

Sub OuvrirFormulaire()
frmProjectionPluie.Show
End Sub

Mais cela ne va rien changer au bug. Je vous l'ai écrit deux fois. Donc relisez mon post --> https://forum.excel-pratique.com/s/goto/1253250

edit : je vous ai donné tout pour que cela fonctionne. L'image 1 n'est pas réellement un bug mais provient du bug vu sur l'image 2

je suis entrain de faire de mon mieux, la problématique est que mon cerveau échafaude les calculs plus vites que je que je suis capables de les transcrire en VBA,

je suis entrain de faire de mon mieux, la problématique est que mon cerveau échafaude...

Pas de soucis.
Il n'y a rien de compliqué (à moins que vous ne soyez pas l'auteur complet du fichier ? )
Faites ce que j'ai écrit dans mon post.
Si question n'hésitez pas

rebjr

voici le programme corrigé

comme je l'ai dit une grosse partie du code m'a été fourni par COPILOT

je ne peux pas envoyer seulement la photo de ce qui ne va pas car il vous faut à priori le code avec et au fur et à mesure je me heurte à d'autres problèmes

comme vous pouvez le constater .......

PS : j'incrémente le N° de test

j'ai intégré tous les combobox et les valeurs numériques que je dois réutiliser dans la suite du programme

Cdlt

JP

re

Le souci c'est que vous ne prenez pas ce que l'on vous donne... Mais bon vous faites ce que vous voulez..
Puis l'IA ne vous donne pas toujours la vérité. Et comme vous l'écriviez, cela ne fait pas tout.
C'est juste une aide mais au final on voit pas mal de demandes parce que cela ne correspond au but désiré

1. Votre code Initialize comme ceci (testé dans votre fichier)

Private Sub UserForm_Initialize()
Dim pluie(), dptnormand(), saison(), materiaux()

pluie = Array("faible", "modérée", "forte", "très forte")
dptnormand = Array("Cotentin", "Seine Maritime", "Calvados", "Eure", "Orne")
saison = Array("Printemps", "Eté", "Automne", "Hiver")
materiaux = Array("tuiles", "ardoises", "zinc", "vegetalise", "bitume", "polycarbonate")

cmbPluie.List = pluie
cmbDeptNormand.List = dptnormand
cmbSaison.List = saison
CmbRugositeToiture.List = materiaux

Me.BackColor = RGB(230, 242, 255)
End Sub

2. Pour l'erreur sur la ligne lbl_pluie, cela vient du faite que vous avez laissé "& vbcrlf" derrière le texte "m/s" (mètre par seconde). Donc la ligne comme ceci

LblPluie.Caption = "Intensité Orage: " & Round(IntensitéOrage, 1) & "mm/h" & vbCrLf & _
                       "Rafales de Vent : " & Round(V_Vent, 2) & "m/s"

je ne peux pas envoyer seulement la photo de ce qui ne va pas car il vous faut à priori le code avec et au fur et à mesure je me heurte à d'autres problèmes

Si vous pouvez, une fois l'erreur affichée au lieu de la coller dans votre fichier vous la collez dans votre post.
Sinon vous faites CTRL + ALT + Print Screen sur votre clavier pour copier ce que vous avez à l'écran puis dans votre message vous faites CTRL + v pour coller. Mé bon çà vous connaissez ...


PS : j'incrémente le N° de test

Expliquez-moi ce que vous voulez faire


EDIT : au fait dans la Sub calcul
- dans les lignes Case Else, vous ne pouvez pas utiliser des guillemets sur les valeurs CAPEDept et IntensitéOrange. Changez les "" en valeur 0.
- si à la fin du code vous mettez Unload me, à la fin du code, vous ne verrez pas le résultat dans le label "LblAffichageRésultats".

Après cela fonctionne bien

Tout d'abord Merci

En fait si je comprends bien le codage d'une "combobox" s'effectue par la déclaration d'un tableau du Style "Dim XX ()" puis dans le détail vous utilisez "Array" pour déclarer les composantes du tableau ......çà c'est enregistré, maintenant le programme démarre bien, mais comment je fais lorsque je choisis par exemple "Cotentin" pour faire apparaitre au niveau de l'userform la valeur "600" au niveau du label "CAPEDept" tout en haut de l'USF et ensuite de stocker dans une variable pour la réutiliser dans le calcul suivant

1°) Dans le cadre "périodes annuelles" je saisis la saison j'ai 2 températures à servir la température libellée "saison" qui doit s'afficher automatiquement dans son label et la température locale que j'inscris dans son textbox

A quoi çà sert : ma valeur Intensité de l'orage se calcule comme :" IntensitéOrage" = Val(lblCAPEDept + 50 * (TempLocale - TempSaison))

2°)De la même manière je souhaiterais faire ressortir dans le cadre "Règles Opérations Heuristiques", 2 informations issues du choix "Type Pluie", à savoir :

a) gradient de précipitations (mm/h)

b) vitesse Rafale Vent (m/s)

3°) Enfin en fonction du choix "type Toiture" je souhaiterais faire apparaître dans le label "Coefficient Rugosité", sa valeur et en parallèle l'utiliser dans les calculs de vitesse réelle de l'eau de pluie descendant la pente du toit

4°) Faire calculer le programme et ressortir dans le cadre libellé "Affichage Résultats" les valeurs recherchées en particulier , la portée et la hauteur d'impact ainsi que le volume d'eau transporté depuis la gouttière jusqu'au mur d'en face ......

Au final une fois que cela fonctionnera j'aimerais sortir une page récapitulative des données et calculs au format WORD puis pouvoir la transformer en PDF pour diffusion

Pourquoi ce programme, parce qu'en tant qu'ancien expert judiciaire j'ai du me battre contre une consoeur qui ne comprenait rien et je lui en ai fait la démonstation

je ne rentrerais pas plus loin dans le propos, vu que je conteste le rapport devant le tribunal pour ma cliente.

merci encore de votre patience mais si je suis à 72 ans encore tres alerte sur la facon de modéliser des calculs j'avoue une grande ignorance dans le codage VBA....où je me suis essayé sans grand succès alors qu'à une époque antérieure (TurboBasic) j'avais complètement programmé (pissé du code comme vous dites) le diagramme de l'Air humide......

pourrais je vous resolliciter si besoin pour compléter ce mini programme à l'usage du futur juge qui aura à examiner la requête en contestation.

bien cordialement DAN , mon prenom est Jean pascal, je suis expert specialiste en énergétique et acoustique

JP

A propos je deviendrais prochainement membre premium

merci encore

JP

re

En fait si je comprends bien le codage d'une "combobox" s'effectue par la déclaration d'un tableau du Style "Dim XX ()" puis dans le détail vous utilisez "Array" pour déclarer les composantes du tableau .

Ok vous avez compris le chargement de l'USF.

Rem : Bien entendu si la liste était susceptible de varier, cette manière de faire risquerait de devenir ingérable. je pense au cas où vous deviez par exemple ajouter d'autres régions. Le but final est que vous ne deviez plus aller modifier dans le code.

merci encore de votre patience mais si je suis à 72 ans encore tres alerte sur la facon de modéliser des calculs j'avoue une grande ignorance dans le codage VBA....où je me suis essayé sans grand succès alors qu'à une époque antérieure (TurboBasic) j'avais complètement programmé (pissé du code comme vous dites) le diagramme de l'Air humide......

Je comprends rassurez-vous d'autant que je ne suis pas loin de votre age...

pourrais je vous resolliciter si besoin pour compléter ce mini programme à l'usage du futur juge qui aura à examiner la requête en contestation.

Mais bien entendu


Je vais répondre au point ci-dessous

.... mais comment je fais lorsque je choisis par exemple "Cotentin" pour faire apparaitre au niveau de l'userform la valeur "600" au niveau du label "CAPEDept" tout en haut de l'USF et ensuite de stocker dans une variable pour la réutiliser dans le calcul suivant

Là on peut envoyer la valeur 600 sur changement de valeur en combo.
Le tout est de savoir d'abord si les valeurs indiquées dans la feuille Projectionpluie en colonne G peuvent varier ou pas ? Et si oui, est-ce à chaque calcul

pour ce qui concerne ce programme à l'usage pour l'instant de la Normandie (5 dept) les valeurs initiées dans la combo sont fixées c'est dans le lbl intensité Orage que cela peut changer car j'applique une formule en fonction de la saison et de la température locale

bien cordialement

JP

hum... cela ne répond pas trop à la question au sujet de la colonne G.
Vous pouvez toujours ajouter ce code dans l'USF

Private Sub cmbDeptNormand_Change()
Dim i As Integer

If cmbDeptNormand = vbNullString Then LblCAPEDept = vbNullString: Exit Sub

Select Case cmbDeptNormand
    Case Is = "Cotentin": i = 600
    Case Is = "Seine Maritime": i = 1400
    Case Is = "Calvados": i = 1175
    Case Is = "Eure": i = 2000
    Case Is = "Orne": i = 1800
End Select
LblCAPEDept = i
End Sub

Dès que vous allez changer la valeur de la combo, le label CAPE sera adapté.
Dans le calcul il faudra supprimer une partie des lignes de code en-dessous de cette ligne --> '== Choix du département d'études===

Faites un test sur le code ci-dessus et dites-moi si ok

Ensuite dites moi si d'autres informations doivent être mentionnées en fonction du choix des autres combos

Rechercher des sujets similaires à "erreur 424 systematique"