fonctions isnumeric, istext
J'explique tout ce que je dois faire dans cette macro, et ai tenté de traduire avec le peu de connaissances de Vba que j'ai. Alors corrigez moi si je me trompe ! d'autant plus que je ne sais pas pourquoi mais quand j'essaie de la faire fonctionner, à chaque fois "un tableau est attendu" pour les fonctions isnumeric et istext... je ne sais malheureusement pas quoi faire.
Code:
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
| Sub Tantque()
Dim I, K As Integer
I = 0
While Not IsEmpty(Range("A1").Select)
If WorksheetFunction.Isnumeric(Cells(K, 1)) Then 'si la cellule contient des chiffres
Cells(I, 2) = Cells(I, 1) 'alors la cellule B2 contient la valeur de la cellule A1
Cells(I, 1).ClearContents 'et on efface la valeur de la cellule A1
K = K + 1 'ainsi de suite jusqu'à la dernière case contenant des chiffres
End If
If Cells(K, 1).Value = "Total" Then 'si la cellule contient le mot "total"
Row("I:I").ClearContents 'alors on supprime la ligne correspondante
K = K + 1 'ainsi de suite jusqu'à la dernière valeur de la colonne
End If
If WorksheetFunction.IsText(Cells(K, 1)) Then 'si la cellule contient du texte
Cells(I + 1, 1) = Cells(I, 1) 'alors la cellule A2 contient la valeur de la cellule A1
Cells(1, 1).ClearContents 'on efface la valeur de la cellule A1
K = K + 1 'ainsi de suite jusqu'à la dernière valeur qui contient du texte
End If
Wend
End Sub |
comment lire la valeur d'une cellule
Bonjour à tous, dans cette macro dans laquelle je décris tout ce que je voudrais faire, quelques problèmes se posent. En effet, arrivé à If Range(K, 1).Value = "Total", la macro bloque. Bien que je sois allée voir le tutoriel correspondant à comment lire la valeur d'une cellule, je ne comprends pas comment on fait et je bloque toujours.
Code:
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
| Private Sub CommandButton3_Click()
Tantque
End Sub
Sub Tantque()
Dim I As Integer
Dim J As Integer
Dim K As Integer
Dim cells() As String
Dim rows() As String
ReDim cells(2, 1)
While Not IsEmpty(Range("A1").Select)
If IsNumeric(cells(K, 1)) Then 'si la cellule contient des chiffres
cells(I, 2) = cells(I, 1) 'alors la cellule B2 contient la valeur de la cellule A1
K = K + 1 'ainsi de suite jusqu'à la dernière case contenant des chiffres
ReDim Preserve cells(K, 1)
End If
If Range(K, 1).Value = "Total" Then 'si la cellule contient le mot "total"
rows("I:I").ClearContents 'alors on supprime la ligne correspondante
K = K + 1 'ainsi de suite jusqu'à la dernière valeur de la colonne
ReDim Preserve cells(K, 1)
End If
If IsText(cells(K, 1)) Then 'si la cellule contient du texte
cells(I + 1, 1) = cells(I, 1) 'alors la cellule A2 contient la valeur de la cellule A1
Range(1, 1).ClearContents 'on efface la valeur de la cellule A1
K = K + 1 'ainsi de suite jusqu'à la dernière valeur qui contient du texte
ReDim Preserve cells(K, 1)
End If
Wend
End Sub |