Option Explicit
Sub Main()
Dim C#, E#, s$, n&, i&
n = Cells(Rows.Count, 1).End(3).Row
If n > 1 Then [A2].Resize(n - 1, 2).ClearContents
s = InputBox("Quel est le nombre de mesures ?")
n = Val(s)
For i = 1 To n
s = InputBox("Saisir la valeur client")
C = Val(Replace$(s, ",", "."))
s = InputBox("Saisir la valeur étalon")
E = Val(Replace$(s, ",", "."))
With Cells(i + 1, 1)
.Value = C: .Offset(, 1) = E
End With
Next i
End Sub
Bonjour,Bonjour Hanjen, sylvanu,
lis d'abord mon post #3 précédent. (c'est une solution sans macro, grâce à une "saisie guidée")
maint'nant, si vraiment tu préfères une solution avec macro, ouvre le fichier joint, et fais : Ctrl e
attention : pour la saisie d'un nombre décimal, tu peux taper au choix point « . » ou virgule « , » comme séparateur décimal ; le point est plus pratique car ça permet d'utiliser le point du pavé numérique (qui est plus proche des touches de chiffres 0 à 9 ; ça évite de devoir taper la virgule du clavier central : touche à droite de la touche « N »).
en principe, je n'pense pas qu'il y a des mesures négatives, mais au cas où, il te suffit de taper le caractère moins devant : touche moins « - » du pavé numérique ou tiret « - » du clavier central (au-dessus de la lettre « Y », et un peu à gauche).
pour le nombre de mesures, note que si tu entres 0 la boucle For ne sera pas exécutée, car de 1 à 0 : rien.
si tu veux saisir une nouvelle série de mesures, c'est inutile d'effacer les anciennes mesures : refais juste Ctrl e car l'effacement sera fait automatiquement par la macro.
VB:Option Explicit Sub Main() Dim C#, E#, s$, n&, i& n = Cells(Rows.Count, 1).End(3).Row If n > 1 Then [A2].Resize(n - 1, 2).ClearContents s = InputBox("Quel est le nombre de mesures ?") n = Val(s) For i = 1 To n s = InputBox("Saisir la valeur client") C = Val(Replace$(s, ",", ".")) s = InputBox("Saisir la valeur étalon") E = Val(Replace$(s, ",", ".")) With Cells(i + 1, 1) .Value = C: .Offset(, 1) = E End With Next i End Sub
note bien que pour l'instant, la macro permet uniquement la saisie des mesures, sans faire dessus aucun traitement numérique ; si besoin, tu peux demander une adaptation ; par exemple l'affichage du total des mesures et / ou de la moyenne des mesures ; à afficher via MsgBox (ou sur la feuille de calcul) ; mais si tu préfères le faire toi-même en utilisant une calculatrice, no problem.
comme le dit sylvanu, tu aurais mieux fait de joindre un fichier Excel .xlsm plutôt qu'une image ! et on aurait pu te répondre plus vite ; tu as eu de la chance que ton image ne contienne ni trop de données, ni un code VBA très long, car sans ça, je n'aurais pas pris la peine de faire entièrement un fichier Excel à partir de rien.
à te lire pour avoir ton avis.
soan
Bonsoir @soan j'étais à fond dans mon projet...j'ai pas mal bosser avec un collègue on a repris le code. C'est une autre façon de faire mais on obtiens la même chose.Bonsoir Hanjen,
ton fichier en retour.
fais d'abord les tests : clique sur ton bouton, ou fais Ctrl e.
lis bien attentivement tous les commentaires du code VBA.
soan
=(B5+H5+N5)/3
➯ moyenne = 40 ;=MOYENNE(B5;H5;N5)
➯ moyenne = 40Sub Essai()
Worksheets("Feuil2").[A5] = ([B5] + [H5] + [N5]) / 3
Worksheets("Feuil2").[C5] = WorksheetFunction.Average([B5], [H5], [N5])
End Sub
Bonjour,Bonjour Hanjen,
exemple pour la 1ère moyenne :
3 Mesures : en B5 : 10 ; en H5 : 30 ; en N5 : 80
formules sur une feuille de calcul :=(B5+H5+N5)/3
➯ moyenne = 40 ;
OU :=MOYENNE(B5;H5;N5)
➯ moyenne = 40
en VBA, résultats sur "Feuil2", en A5 et C5 :
VB:Sub Essai() Worksheets("Feuil2").[A5] = ([B5] + [H5] + [N5]) / 3 Worksheets("Feuil2").[C5] = WorksheetFunction.Average([B5], [H5], [N5]) End Sub
tu dois pouvoir tout faire avec les infos ci-dessus ; sinon, comme il s'agit de quelque chose de très différent de ce sujet, c'est mieux que tu ouvres un autre sujet, en mettant un fichier plutôt qu'une image ; indique aussi quel est le nom de la feuille où il faut mettre les résultats, et dans quelles cellules.
si le présent sujet est résolu, merci de l'indiquer : il te suffit de cliquer sur la coche en forme de V du bord vertical droit du post qui a solutionné ton exo.
soan