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 :

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
Et ça marchait nickel
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 :

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
Ben là ça marche, sauf que j’ai du texte, le résultat n’apparait pas dans la cellule.
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.