Je suis novice en VB et je dois pour un projet réaliser une macro pour Excel. Le principe est de parcourir toutes les cellules de la colonne A (ce sont les seules qui sont remplies) lorsqu'elles ne sont pas vides et de copier des "petits bouts" de ce que contiennent ces cellules sur une colonne différente mais la même ligne (donc on obtient un tableau propre après...)

Voici mon code :
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Sub affectation(sht As Worksheet)
Application.ScreenUpdating = False

Dim I As Range
Dim heures As Variant
Dim minutes As Variant
Dim secondes As Variant
Dim centiemes As Variant
Dim longueur As Variant
Dim vitesse_1boucle As Variant
Dim vitesse_2boucles As Variant
Dim amplitude As Variant
Dim tampon As String

    Set I = sht.Range("A1")
    While Not IsEmpty(I)
    
        tampon = sht.Range("A" & I.Row).Value
        
            'Isoler les heures
            heures = Mid(tampon, 2, 3)
            sht.Range("D" & I.Row).Value = heures
            
            'Isoler les minutes
            minutes = Mid(tampon, 4, 5)
            sht.Range("E" & I.Row).Value = minutes
            
            'Isoler les secondes
            secondes = Mid(tampon, 6, 7)
            sht.Range("F" & I.Row).Value = secondes
            
            'Isoler les centiemes de seconde
            centiemes = Mid(tampon, 8, 9)
            sht.Range("G" & I.Row).Value = centiemes
            
            'Isoler la longueur du véhicule
            longueur = Mid(tampon, 26, 28)
            sht.Range("H" & I.Row).Value = longueur
            
            ' Isoler les vitesse (1 boucle et 2 boucles)
            vitesse_1boucle = Mid(tampon, 15, 17)
            sht.Range("I" & I.Row).Value = vitesse_1boucle
            vitesse_2boucles = Mid(tampon, 18, 20)
            sht.Range("J" & I.Row).Value = vitesse_2boucles
            
            ' Isoler l'amplitude du signal sur le capteur d'entrée
            amplitude = Mid(tampon, 31, 35)
            sht.Range("K" & I.Row).Value = amplitude
            
            ' Nettoyage de la cellule "A" & I.Row
            sht.Range("A" & I.Row).Value = ""
            
            'Passage à la ligne suivante
            Set I = sht.Range("A" & I.Row + 1)
    Wend
Application.ScreenUpdating = True
End Sub
A la ligne en gras, j'obtient une erreur '91' : "variable objet ou variable de bloc With non définie"...

J'ai cherché sur des forums avant de poster, mais je ne trouve pas de réponse à cette erreur...

Merci de m'éclairer !