VBA
Résolu
Comuto
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Comuto Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Comuto Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous !
Alors voilà, je vous explique mon problème. Je voudrais faire une boucle Pour dans laquelle "Mat" est une valeur qu'il doit prendre dans un tableau et "Résultat" un nom associer à cette valeur mais voilà le problème ... Je ne sais pas si je m'y prend bien mais un débogage est nécessaire à chaque essai d'où le fait que je vous demande votre aide.
Merci d'avance.
Alors voilà, je vous explique mon problème. Je voudrais faire une boucle Pour dans laquelle "Mat" est une valeur qu'il doit prendre dans un tableau et "Résultat" un nom associer à cette valeur mais voilà le problème ... Je ne sais pas si je m'y prend bien mais un débogage est nécessaire à chaque essai d'où le fait que je vous demande votre aide.
Merci d'avance.
For i = 2 To 22 Mat = 0 Do While Re > Mat Mat = Sheets(Projet).Range("B" & "i").Value Résultat = Sheets(Projet).Range("A" & "i").Value Loop Next i Label5.Caption = CStr(Résultat)
2 réponses
Bonjour et bienvenue sur CCM,
Tout d'abord, ici c'est pas le Forum VBA mais le Forum Excel. Le Forum VBA est ici :
https://forums.commentcamarche.net/forum/vb-vba-267
Mais ce n'est pas très grave, je vois cette erreur tous les jours.
A première vue ton code devrait fonctionner a condition que Re et Projet aient été définis avant.
Quand tu poses une question sur le code il est préférable de mettre l'intégralité du code (comme dans ton cas, le problème peut se situer avant)
Il faut aussi préciser sur quelle ligne pointe le débogueur et le message d'erreur qu'il donne.
qq conseils :
- Commences tous tes modules pas Option Explicit
- Plus tu est rigoureux moins tu as de problème
Il y a une erreur avec "i" dans :
Mat = Sheets(Projet).Range("B" & "i").Value
ce qui équivaut à
Mat = Sheets(Projet).Range("Bi").Value
Préférer Worksheets à Sheets d'où :
Mat = Worksheets(Projet).Range("B" & i).Value
Idem pour Résultats
Tout d'abord, ici c'est pas le Forum VBA mais le Forum Excel. Le Forum VBA est ici :
https://forums.commentcamarche.net/forum/vb-vba-267
Mais ce n'est pas très grave, je vois cette erreur tous les jours.
A première vue ton code devrait fonctionner a condition que Re et Projet aient été définis avant.
Quand tu poses une question sur le code il est préférable de mettre l'intégralité du code (comme dans ton cas, le problème peut se situer avant)
Il faut aussi préciser sur quelle ligne pointe le débogueur et le message d'erreur qu'il donne.
qq conseils :
- Commences tous tes modules pas Option Explicit
- Plus tu est rigoureux moins tu as de problème
Il y a une erreur avec "i" dans :
Mat = Sheets(Projet).Range("B" & "i").Value
ce qui équivaut à
Mat = Sheets(Projet).Range("Bi").Value
Préférer Worksheets à Sheets d'où :
Mat = Worksheets(Projet).Range("B" & i).Value
Idem pour Résultats
Bonjour
Trois erreurs au moins...
1. Le nom de la feuille doit être entre guillemets
2. l'adresse variable "Ai" >>> "A" & i
3. Ta boucle Do while .... loop tourne en rond
Un début ?
Cdlmnt
Trois erreurs au moins...
1. Le nom de la feuille doit être entre guillemets
2. l'adresse variable "Ai" >>> "A" & i
3. Ta boucle Do while .... loop tourne en rond
Un début ?
Private Sub CommandButton3_Click() Dim Re, Nombre1, Nombre2, Nombre3 As Double Dim Résultat As String Dim Val, i, Mat As Double If (IsNumeric(TextBox1.Value) And IsNumeric(TextBox2.Value) And IsNumeric(TextBox3.Value)) Then Nombre1 = CDbl(TextBox1.Value) Nombre2 = CDbl(TextBox2.Value) Nombre3 = CDbl(TextBox3.Value) If (0 > Nombre1 Or 0 >= Nombre2 Or 0 > Nombre3) Then Val = MsgBox("Pas dans l'intervalle", vbExclamation) Else Re = (Nombre1 * Nombre3) / Nombre2 i = 2 Mat = 0 Do While Re > Mat Or i = 23 'Comparer la valeur de Re calculé à une valeur donnée sur une feuille Mat = Worksheets("Projet").Range("B" & i).Value Résultat = Worksheets("Projet").Range("A" & i).Value 'Le nom associer à cette valeur "mat" i = i + 1 Loop Label5.Caption = CStr(Résultat) End If Else Val = MsgBox("Pas numérique", vbExclamation) End If End Sub
Cdlmnt
Cordialement.