Langage VBA et Langage algo

Bonjour à toutes et à tous,

J'explique mon petit problème ... :

J'ai réaliser un programme VBA que j'ai réussi au bout d'un certain temps (ouf''), cependant je dois transformer celui-ci en langage algo et je suis bloqué à certains moments ( voir ci-dessous ...)

Pas de moqueries, je suis débutante et excel est mon ennemi

Voici les lignes de ma VBA où je suis bloqué pour la transformation en langage algo :

While i < 20

cellule = "C" & (i+5)

salaire total = salairetotal + Sheets ("annexe10").Range(cellule) * 12

i = i + 1

wend

je sais que la première phrase sera : tant que i < = 20 mais pour la suite je suis bloqué

Enfaite j'arrive à faire toutes les transformations mais là comme j'utilise une feuille excel dans ma VBA je ne sais pas faire ..

Mercià l'âme charitable

bonne soirée

Bonjour,

Essaie ceci :

Public Sub XXX()
Dim Cell As Range, i As Long, salaire_total As Double
    While i < 20
        i = i + 1
        Set Cell = Worksheets("annexe10").Cells(i + 5, 3)
        salaire_total = salaire_total + Cell.Value * 12
    Wend
    MsgBox salaire_total
End Sub

Bonjour Éric,

Tout d’abord merci de m’avoir répondu

En faite mon problème n’est pas la VBA car la mienne marche.

Mon problème est la transformation en langage algorithme du paragraphe que j’ai écris ... (car ma vba est bien plus longue )

Bien cordialement

Bonjour, Salut Jean-Eric !

sva : le fait d'avoir une macro VBA dont le code est correctement écrit ne te nuiera pas ! au contraire, c'est nettement plus clair qu'un code approximatif. Tu devrais même avoir plus de facilité pour le traduire en algo générique.

Maintenant, pour t'aider sur ce dernier point, attends que quelqu'un de familier avec ce type de codage te réponde. Pour les autres, tu en sais logiquement plus qu'eux là-dessus puisque l'exercice t'incombe, alors que l'on n'en a pas un usage dans un Forum Excel-VBA...

Cordialement.

Bonjour MFerrand,

Merci pour votre retour

En réalité ma VBA est vienne plus grande (et fonctionne) mais j’ai juste mis ce paragraphe (sans le début ni la fin) car il y a juste cette partie que je n’arrive Pas à transformer en langage algorithme

Bonjour à tous,

Ce que tu as envoyé est déjà un algorithme, alors tu précises ta demande !...

Cdlt.

... oui je m’exprime mal :/ pour tout vous avouez je suis vraiment nul en informatique ce n’est pas du tout mon domaine ..

Exemple dans ma vba j’ai :

While i < 20

dans mon langage algo ce sera :

Tant que i <= 20

Je dois donc faire pareil pour la ligne suivante ou j’integre ma feuille Excel

Cependant je n’arrive pas à trouvé le langage algo ...

Re,

Crée un petit fichier, avec des données et ta procédure, en précisant ce que tu veux faire (avec résultat ?).

Cdlt.

Bonsoir,

je vous informe que j'ai réussi à trouver la solution

bonne soirée

Bonjour sva,

Dans ton message du 24 mai à 23:49, tu as écrit « While i < 20 », que tu traduis par « tant que i < = 20 » !

Dans ton message du 25 mai à 10:58, tu réécris la même erreur de test que ci-dessus !

Dans ton message de 00:03, tu as écrit : « je vous informe que j'ai réussi à trouver la solution »

J'ose espérer que dans cette solution, tu as corrigé ton erreur de test !

Alors pour plus de sécurité, je vais tenter de faire ta traduction en langage algorithme.


Je remets ici ton code VBA (avec indentation, et correction du nom de ta variable salaire total) :

While i < 20 
  cellule = "C" & (i+5)
  salaire_total = salaire_total + Sheets("annexe10").Range(cellule) * 12
  i = i + 1
wend

En langage algo :

Tant que i < 20

cellule ← "C" & (i+5)

salaire_total ← salaire_total + Sheets("annexe10").Range(cellule) * 12

i ← i + 1

Fin Tant que

Autre façon de l'écrire, plus « verbeuse » :

Tant que i < 20

affecter à cellule le texte "C" & (i+5)

affecter à salaire_total sa propre valeur augmentée de 12 * la valeur de la cellule dont la référence est indiquée par la variable cellule, et cette cellule est sur la feuille "annexe10"

affecter à i la valeur de i + 1

Fin Tant que


Cela dit, ton code VBA initial peut s'écrire bien plus simplement ainsi :

For i = 5 To 24
  salaire_total = salaire_total + Sheets("annexe10").Cells(i, "C") * 12
Next i

En algo (non verbeux ) :

Pour i = 5 à 24

salaire_total ← salaire_total + Sheets("annexe10").Cells(i, "C") * 12

Suivant i


Tu auras noté que j'ai enlevé ton caractère espace en trop entre Sheets et la parenthèse ouvrante.

Note aussi que dans tous ces codes, il y a un gros sous-entendu : avant d'entrer dans une boucle While ou For, la variable salaire_total doit être initialisée à zéro, sinon : résultat faux ! autre gros sous-entendu : avant d'entrer dans une boucle While, la variable i doit être initialisée à zéro ; mais cela est inutile pour la boucle For car l'initialisation est faite à 5.


Je t'ai aussi répondu sur ton 2ème sujet : https://forum.excel-pratique.com/viewtopic.php?p=653698#p653698

dhany

Rechercher des sujets similaires à "langage vba algo"