ExerCICE nº2 Excel-VBA

Bonsoir! j'ai réfléchis sur un exercice et en saisi le code, j'obtiens une ligne de mon code en jaune...

Sujet: écrire une procédure qui permet de calculer la surface d'un rectangle tant que les valeurs de sa hauteur et de sa largeur situées dans les colonnes A et B sont commues ( les cellules ne sont pas vides).

Sub SurfaceRectangle()
 Dim i As Integer
 With Sheets("Feuil1")
 i = 1
         Do While Cells(i + 1, 1) <> " " And Cells(i + 1, 2) <> " "
 i = i + 1
  Cells(i + 1, 3) = Cells(i + 1, 1) * Cells(i + 1, 2) ' ligne donnée en jaune après exécution'
         Loop
 End With
 End Sub

Bonjour

un peu confus comme énoncé

le résultat attendu est il correct ?

A plus sur le forum

4rectangle.xlsm (17.33 Ko)

Bonsoir le fil, bonsoir le forum,

À quoi vous sert le With Sheets("Feuil1") puisque vous n'y faites jamais référence ?

re

en fait j'ai compris

ligne jaune = ligne en erreur dans le Débogage c'est à dire qu'il y a une erreur dans ton code

il y en a mème plusieurs

la première qui provoque l’arrêt en débogage

With Sheets("Feuil1")

tu exécute le calcul du rectangle sur toute la feuille et arrivé à 32767 il y a dépassement de capacité

pour éviter cela en employant ton code si une des cellules de la colonne A ou B est vide il faut sortir de la sub

la seconde tu test si les cellule des colonne a et b sont = à espace

Do While Cells(i + 1, 1) <> " " And Cells(i + 1, 2) <> " "

si tu veux tester = vide il faut mettre

Do While Cells(i + 1, 1) <> "" And Cells(i + 1, 2) <> ""

la troisieme tu met le compteur de ligne à 1

i = 1

puis tu ajoute 1 avant de faire quoi que ce soit donc i est = à 2

puis tu effectue le calcul sur i+1

Cells(i + 1, 3) = Cells(i + 1, 1) * Cells(i + 1, 2) ' ligne donnée en jaune après exécution

donc tu commence ton traitement en ligne 3

tu devrais tout de même suivre la formation COURS VBA et COURS VBA AVANCE sur ce site ce sont des formations évolutive très bien faite qui te permettrons de progresser en douceur parce que là tu applique un peu la devise Shadoks

'Ce n'est qu'en essayant continuellement que l'on finit par réussir....'

A plus sur le forum

Bonsoir! merci pour ces explications detaillées. Effectivement je me sers d'un cours que j'essai d'apprehender mais du chemin me reste a faire...

Par contre pour l'exemple proposé, il convient parfaitement: le programme doit s'arrêter une fois qu'il rencontre des cellules vides....

Pour montrer que le message est passé voici ce qui marche également:

Sub SurfaceRectangle()

Dim i As Integer

i = 1

Do While Cells(i + 1, 1) <> "" And Cells(i + 1, 2) <> ""

Cells(i + 1, 3).Value = Cells(i + 1, 1).Value * Cells(i + 1, 2).Value

i = i + 1

Loop

End Sub

Merci pour le temps consacré...

Rechercher des sujets similaires à "exercice vba"