Bonjour,
J’avais besoin de créer une addition en vba, trop fastoche me dis-je en mon fort interieur.
Pourquoi ?
Parce que j’ai besoin d’avoir les valeurs des sommes aditionnées et non pas leurs références,
Exemple : 25+32 et non pas A1+A2
Donc j’ai crée cette macro :
Et ça marchait nickel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Sub Calcul() Dim Chifr1 As Long Dim Chifr2 As Long Dim Lig As Long Dim Col As Long Dim Col2 As Long Dim Col3 As Long Dim resul As String Col = InputBox("Dans quel colonne se trouve la première série à additionner (son numéro) ? ", "C'est quoi la Colonne") Col2 = InputBox("Dans quel colonne se trouve la seconde série à additionner (son numéro) ? ", "Tu me la donnes la seconde ?") Col3 = InputBox("Dans quel est la colonne de destination (son numéro) ? ", "Ou je mets tout ça ?") Lig = InputBox("Numéro de ligne de départ ? ", "Mais c'est quoi cette ligne ?") While Cells(Lig, Col) <> "" Chifr1 = Cells(Lig, Col) Chifr2 = Cells(Lig, Col2) 'Cells(Lig, Col3) = "=" & Chifr1 & "+" & Chifr2 Lig = Lig + 1 Wend End Sub
Mais en prod je me rends compte que les chiffres decimals sont arrondis.
Forcément me dis-je, j’ai dimensionné en Long,
Qu’importe, je change en variant.
Et patatras (je le fais bien hein), plantage de la macro, à priori la cellule de destination n’est pas faite pour recevoir ce nouvel argument.
Mais pourquoi ? Qu’à cause de la décimale qui apparait ?
J’essaie de dimensionner en single, double et plus si affinité et le résultat est identique.
La ou je devais gagner du temps j’en perds un max, mais je suis obstiné alors je continue.
Et j’arrive à ça :
Ben là ça marche, sauf que j’ai du texte, le résultat n’apparait pas dans la cellule.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Sub Calcul() Dim Chifr1 As Double Dim Chifr2 As Double Dim Lig As Long Dim Col As Long Dim Col2 As Long Dim Col3 As Long Dim resul As String Col = InputBox("Dans quel colonne se trouve la première série à additionner (son numéro) ? ", "C'est quoi la Colonne") Col2 = InputBox("Dans quel colonne se trouve la seconde série à additionner (son numéro) ? ", "Tu me la donnes la seconde ?") Col3 = InputBox("Dans quel est la colonne de destination (son numéro) ? ", "Ou je mets tout ça ?") Lig = InputBox("Numéro de ligne de départ ? ", "Mais c'est quoi cette ligne ?") While Cells(Lig, Col) <> "" Chifr1 = Cells(Lig, Col) Chifr2 = Cells(Lig, Col2) Cells(Lig, Col3) = Chifr1 & "+" & Chifr2 resul = "=" & Chifr1 & "+" & Chifr2 Cells(Lig, Col3 + 1).NumberFormat = "@" Cells(Lig, Col3 + 1) = resul Lig = Lig + 1 Wend
Pour palier je suis obligé de rentrer dans chaque cellule (en cliquant dans la barre de formule) et de faire « Entrée ». (Après avoir copié le résultat de la macro sur une colonne formatée en nombre)
600 lignes, trop la classe.
Alors pour mon info personnel, comment fallait il que je fasse ?
Si quelqu’un à la solution.
Merci.
Partager