Bonjour à tous,
Cela fait près d’une semaine que j’ai le même problème et après plusieurs essais je n’arrive toujours pas à le régler...
En effet, dans ma feuille excel je possède une colonne où les valeurs peuvent être en mV ou en V et une autre où elles peuvent être en µV, mV ou V.
Or je dois additionner (ou soustraire) chaque cellules de chaque colonne entre elles : B5 +/- H5 ; B6 +/- H6 …
Il faut donc que les valeurs soient dans la même unité donc j’ai tout d’abord extrait les valeurs numériques de chaque colonne dans la suivante : si en B5 j’ai -3 mV , en C5 j’ai maintenant -3 (pareil pour la colonne H que j’extrais dans la colonne I).
Ensuite j’ai fait une sorte de boucle pour mes colonnes B et H qui stocke dans une variable les 2 derniers caractères : « mV » « µV » ou « V ».
Après j’ai fait un « selon » afin de multiplier les valeurs des cellules de I par 0.001 si besoin, c’est-à-dire quand B en mV et H en µV ou B en V et H en mV.
Or j’ai un souci au moment de modifier ma cellule. En effet, le programme s’effectue sans problèmes sauf que ma colonne I est inchangée. Je n’arrive pas à écrire dans mes cellules.
J’ai essayé avec un For et en utilisant la formulation Range(« I » & i +5). Value = la valeur de ma cellule * 0.001 mais cela fait tout planter…
Je vois vraiment plus quoi faire…
Merci d’avance pour votre aide, voici le code avec les 2 trucs que j’ai essayé dans le select :
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
27
 
Dim cell, cell1, cell2, cell3 As Variant
Dim uniteTol As String
Dim uniteref As String
For i = 0 To 74
    For Each cell In Sheets("Mesures").Range("B5:B79")
    uniteref = Right(cell, 2)On récupère l’unité
    For Each cell3 In Sheets("Mesures").Range("H5:H79")
    uniteTol = Right(cell3, 2)On récupère l’unité
 
Select Case (uniteref)
    Case Is = "mV"
        If uniteTol = "µV" Then
            For Each cell1 In Sheets("Mesures").Range("I5:I79")
                Range("I" & i + 5) = cell1 * 0.001 'premier essai
            Next cell1
        End If
    Case Is = " V"
        If uniteTol = "mV" Then
            For Each cell2 In Sheets("Mesures").Range("I5:I79")
                cell2 = cell2 * 0.001 'deuxième essai
            Next cell2
        End If
End Select
Next cell3
Next cell
Next