Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la co lone
A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et m être ces deux
valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction da ns
mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la co lone
A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et m être ces deux
valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction da ns
mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la co lone
A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et m être ces deux
valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction da ns
mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Bonjour,
Pourquoi un tableau?
i = 0
x = "D1405"
For Each c In [a1:a20]
If c = x Then
[h5].Offset(i, 0) = x
[h5].Offset(i, 1) = c.Offset(0, 2)
[h5].Offset(i, 2) = c.Offset(0, 3)
i = i + 1
End If
Next c
(ou Filtre élaboré si'il y a des noms de colonnes)
Cordialement JBBonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la colone
A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces deux
valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction dans
mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Bonjour,
Pourquoi un tableau?
i = 0
x = "D1405"
For Each c In [a1:a20]
If c = x Then
[h5].Offset(i, 0) = x
[h5].Offset(i, 1) = c.Offset(0, 2)
[h5].Offset(i, 2) = c.Offset(0, 3)
i = i + 1
End If
Next c
(ou Filtre élaboré si'il y a des noms de colonnes)
Cordialement JB
Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la colone
A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces deux
valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction dans
mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Bonjour,
Pourquoi un tableau?
i = 0
x = "D1405"
For Each c In [a1:a20]
If c = x Then
[h5].Offset(i, 0) = x
[h5].Offset(i, 1) = c.Offset(0, 2)
[h5].Offset(i, 2) = c.Offset(0, 3)
i = i + 1
End If
Next c
(ou Filtre élaboré si'il y a des noms de colonnes)
Cordialement JBBonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la colone
A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces deux
valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction dans
mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la colone
A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces deux
valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction dans
mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la colone
A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces deux
valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction dans
mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la colone
A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces deux
valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction dans
mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la colone
A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces deux
valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction dans
mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la colone
A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces deux
valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction dans
mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la colone
A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces deux
valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction dans
mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la colone
A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et m être ces deux
valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaî t disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction dans
mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la colone
A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et m être ces deux
valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaî t disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction dans
mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la colone
A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et m être ces deux
valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaî t disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction dans
mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
Bonjour,
il me semble qu'il y a une confusionTon probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
En effet, ci-dessous, un extrait de l'aide d'Excel sur Redim
Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner
que la dernière dimension du tableau. Vous ne pouvez en aucun cas
modifier le nombre de dimensions.
Par ailleurs, l'exemple suivant permet de se rendre compte de ce qu'on
peut fair ou pas
1) sans le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
ne plantera pas
Dim MyArray() As Integer
ReDim MyArray(10, 20)
ReDim MyArray(10, 15)
ReDim MyArray(15, 15)
2) avec le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
plantera sur la dernière ligne car on tente de changer la limite de
la 1ere dimension ( donc pas la dernière) ce qui est interdit
Dim MyArray() As Integer
ReDim Preserve MyArray(10, 20)
ReDim Preserve MyArray(10, 15)
ReDim Preserve MyArray(15, 15)
A+
JLuc wrote:Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la colone
A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces deux
valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction dans
mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
Bonjour,
il me semble qu'il y a une confusion
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
En effet, ci-dessous, un extrait de l'aide d'Excel sur Redim
Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner
que la dernière dimension du tableau. Vous ne pouvez en aucun cas
modifier le nombre de dimensions.
Par ailleurs, l'exemple suivant permet de se rendre compte de ce qu'on
peut fair ou pas
1) sans le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
ne plantera pas
Dim MyArray() As Integer
ReDim MyArray(10, 20)
ReDim MyArray(10, 15)
ReDim MyArray(15, 15)
2) avec le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
plantera sur la dernière ligne car on tente de changer la limite de
la 1ere dimension ( donc pas la dernière) ce qui est interdit
Dim MyArray() As Integer
ReDim Preserve MyArray(10, 20)
ReDim Preserve MyArray(10, 15)
ReDim Preserve MyArray(15, 15)
A+
JLuc wrote:
Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la colone
A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces deux
valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction dans
mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
Bonjour,
il me semble qu'il y a une confusionTon probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
En effet, ci-dessous, un extrait de l'aide d'Excel sur Redim
Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner
que la dernière dimension du tableau. Vous ne pouvez en aucun cas
modifier le nombre de dimensions.
Par ailleurs, l'exemple suivant permet de se rendre compte de ce qu'on
peut fair ou pas
1) sans le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
ne plantera pas
Dim MyArray() As Integer
ReDim MyArray(10, 20)
ReDim MyArray(10, 15)
ReDim MyArray(15, 15)
2) avec le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
plantera sur la dernière ligne car on tente de changer la limite de
la 1ere dimension ( donc pas la dernière) ce qui est interdit
Dim MyArray() As Integer
ReDim Preserve MyArray(10, 20)
ReDim Preserve MyArray(10, 15)
ReDim Preserve MyArray(15, 15)
A+
JLuc wrote:Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la colone
A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces deux
valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction dans
mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
Bonjour anonymousA
si j'utilse le mot clé ReDim sans Preserve j'obtient uniquement la dernière
occurrence du mot cherché.
comment faire pour obtenir les n occurnce du mot cherché et les affichées ?
merci par d'avance
Bonne journée.
Abed_HBonjour,
il me semble qu'il y a une confusionTon probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
En effet, ci-dessous, un extrait de l'aide d'Excel sur Redim
Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner
que la dernière dimension du tableau. Vous ne pouvez en aucun cas
modifier le nombre de dimensions.
Par ailleurs, l'exemple suivant permet de se rendre compte de ce qu'on
peut fair ou pas
1) sans le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
ne plantera pas
Dim MyArray() As Integer
ReDim MyArray(10, 20)
ReDim MyArray(10, 15)
ReDim MyArray(15, 15)
2) avec le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
plantera sur la dernière ligne car on tente de changer la limite de
la 1ere dimension ( donc pas la dernière) ce qui est interdit
Dim MyArray() As Integer
ReDim Preserve MyArray(10, 20)
ReDim Preserve MyArray(10, 15)
ReDim Preserve MyArray(15, 15)
A+
JLuc wrote:Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la
colone A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces
deux valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction
dans mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
Bonjour anonymousA
si j'utilse le mot clé ReDim sans Preserve j'obtient uniquement la dernière
occurrence du mot cherché.
comment faire pour obtenir les n occurnce du mot cherché et les affichées ?
merci par d'avance
Bonne journée.
Abed_H
Bonjour,
il me semble qu'il y a une confusion
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
En effet, ci-dessous, un extrait de l'aide d'Excel sur Redim
Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner
que la dernière dimension du tableau. Vous ne pouvez en aucun cas
modifier le nombre de dimensions.
Par ailleurs, l'exemple suivant permet de se rendre compte de ce qu'on
peut fair ou pas
1) sans le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
ne plantera pas
Dim MyArray() As Integer
ReDim MyArray(10, 20)
ReDim MyArray(10, 15)
ReDim MyArray(15, 15)
2) avec le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
plantera sur la dernière ligne car on tente de changer la limite de
la 1ere dimension ( donc pas la dernière) ce qui est interdit
Dim MyArray() As Integer
ReDim Preserve MyArray(10, 20)
ReDim Preserve MyArray(10, 15)
ReDim Preserve MyArray(15, 15)
A+
JLuc wrote:
Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la
colone A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces
deux valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction
dans mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
Bonjour anonymousA
si j'utilse le mot clé ReDim sans Preserve j'obtient uniquement la dernière
occurrence du mot cherché.
comment faire pour obtenir les n occurnce du mot cherché et les affichées ?
merci par d'avance
Bonne journée.
Abed_HBonjour,
il me semble qu'il y a une confusionTon probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
En effet, ci-dessous, un extrait de l'aide d'Excel sur Redim
Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner
que la dernière dimension du tableau. Vous ne pouvez en aucun cas
modifier le nombre de dimensions.
Par ailleurs, l'exemple suivant permet de se rendre compte de ce qu'on
peut fair ou pas
1) sans le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
ne plantera pas
Dim MyArray() As Integer
ReDim MyArray(10, 20)
ReDim MyArray(10, 15)
ReDim MyArray(15, 15)
2) avec le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
plantera sur la dernière ligne car on tente de changer la limite de
la 1ere dimension ( donc pas la dernière) ce qui est interdit
Dim MyArray() As Integer
ReDim Preserve MyArray(10, 20)
ReDim Preserve MyArray(10, 15)
ReDim Preserve MyArray(15, 15)
A+
JLuc wrote:Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la
colone A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces
deux valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction
dans mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
Autant pour moi, anonymousA a raison :/ j'ai peut etre repondu un peu
vite.
Voila ce que, moi, j'utiliserais :
Dim Tablo()
nb = 0
For Each c In Range("A1:A20")
' peut etre remplacer par un countif
' plus interessant si la plage est grande :oÞ
If c.Value = "D1405" Then
nb = nb + 1
End If
Next
If nb > 0 Then
Redim Tablo(1 To nb, 1 To 3)
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
End IfBonjour anonymousA
si j'utilse le mot clé ReDim sans Preserve j'obtient uniquement la dernière
occurrence du mot cherché.
comment faire pour obtenir les n occurnce du mot cherché et les affichées ?
merci par d'avance
Bonne journée.
Abed_HBonjour,
il me semble qu'il y a une confusionTon probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
En effet, ci-dessous, un extrait de l'aide d'Excel sur Redim
Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner
que la dernière dimension du tableau. Vous ne pouvez en aucun cas
modifier le nombre de dimensions.
Par ailleurs, l'exemple suivant permet de se rendre compte de ce qu'on
peut fair ou pas
1) sans le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
ne plantera pas
Dim MyArray() As Integer
ReDim MyArray(10, 20)
ReDim MyArray(10, 15)
ReDim MyArray(15, 15)
2) avec le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
plantera sur la dernière ligne car on tente de changer la limite de
la 1ere dimension ( donc pas la dernière) ce qui est interdit
Dim MyArray() As Integer
ReDim Preserve MyArray(10, 20)
ReDim Preserve MyArray(10, 15)
ReDim Preserve MyArray(15, 15)
A+
JLuc wrote:Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la
colone A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces
deux valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction
dans mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
--
JLuc
Autant pour moi, anonymousA a raison :/ j'ai peut etre repondu un peu
vite.
Voila ce que, moi, j'utiliserais :
Dim Tablo()
nb = 0
For Each c In Range("A1:A20")
' peut etre remplacer par un countif
' plus interessant si la plage est grande :oÞ
If c.Value = "D1405" Then
nb = nb + 1
End If
Next
If nb > 0 Then
Redim Tablo(1 To nb, 1 To 3)
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
End If
Bonjour anonymousA
si j'utilse le mot clé ReDim sans Preserve j'obtient uniquement la dernière
occurrence du mot cherché.
comment faire pour obtenir les n occurnce du mot cherché et les affichées ?
merci par d'avance
Bonne journée.
Abed_H
Bonjour,
il me semble qu'il y a une confusion
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
En effet, ci-dessous, un extrait de l'aide d'Excel sur Redim
Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner
que la dernière dimension du tableau. Vous ne pouvez en aucun cas
modifier le nombre de dimensions.
Par ailleurs, l'exemple suivant permet de se rendre compte de ce qu'on
peut fair ou pas
1) sans le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
ne plantera pas
Dim MyArray() As Integer
ReDim MyArray(10, 20)
ReDim MyArray(10, 15)
ReDim MyArray(15, 15)
2) avec le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
plantera sur la dernière ligne car on tente de changer la limite de
la 1ere dimension ( donc pas la dernière) ce qui est interdit
Dim MyArray() As Integer
ReDim Preserve MyArray(10, 20)
ReDim Preserve MyArray(10, 15)
ReDim Preserve MyArray(15, 15)
A+
JLuc wrote:
Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la
colone A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces
deux valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction
dans mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
--
JLuc
Autant pour moi, anonymousA a raison :/ j'ai peut etre repondu un peu
vite.
Voila ce que, moi, j'utiliserais :
Dim Tablo()
nb = 0
For Each c In Range("A1:A20")
' peut etre remplacer par un countif
' plus interessant si la plage est grande :oÞ
If c.Value = "D1405" Then
nb = nb + 1
End If
Next
If nb > 0 Then
Redim Tablo(1 To nb, 1 To 3)
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
End IfBonjour anonymousA
si j'utilse le mot clé ReDim sans Preserve j'obtient uniquement la dernière
occurrence du mot cherché.
comment faire pour obtenir les n occurnce du mot cherché et les affichées ?
merci par d'avance
Bonne journée.
Abed_HBonjour,
il me semble qu'il y a une confusionTon probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
En effet, ci-dessous, un extrait de l'aide d'Excel sur Redim
Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner
que la dernière dimension du tableau. Vous ne pouvez en aucun cas
modifier le nombre de dimensions.
Par ailleurs, l'exemple suivant permet de se rendre compte de ce qu'on
peut fair ou pas
1) sans le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
ne plantera pas
Dim MyArray() As Integer
ReDim MyArray(10, 20)
ReDim MyArray(10, 15)
ReDim MyArray(15, 15)
2) avec le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
plantera sur la dernière ligne car on tente de changer la limite de
la 1ere dimension ( donc pas la dernière) ce qui est interdit
Dim MyArray() As Integer
ReDim Preserve MyArray(10, 20)
ReDim Preserve MyArray(10, 15)
ReDim Preserve MyArray(15, 15)
A+
JLuc wrote:Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la
colone A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces
deux valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction
dans mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
--
JLuc
Re,Bonjour
ton code renvoi uniquement la première occurrence de la valeur cherchée
voi ça http://cjoint.com/?hult1oysNY
merci pour ton aide et bonne journée
Abed_HAutant pour moi, anonymousA a raison :/ j'ai peut etre repondu un peu
vite.
Voila ce que, moi, j'utiliserais :
Dim Tablo()
nb = 0
For Each c In Range("A1:A20")
' peut etre remplacer par un countif
' plus interessant si la plage est grande :oÞ
If c.Value = "D1405" Then
nb = nb + 1
End If
Next
If nb > 0 Then
Redim Tablo(1 To nb, 1 To 3)
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
End IfBonjour anonymousA
si j'utilse le mot clé ReDim sans Preserve j'obtient uniquement la dernière
occurrence du mot cherché.
comment faire pour obtenir les n occurnce du mot cherché et les affichées ?
merci par d'avance
Bonne journée.
Abed_HBonjour,
il me semble qu'il y a une confusionTon probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
En effet, ci-dessous, un extrait de l'aide d'Excel sur Redim
Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner
que la dernière dimension du tableau. Vous ne pouvez en aucun cas
modifier le nombre de dimensions.
Par ailleurs, l'exemple suivant permet de se rendre compte de ce qu'on
peut fair ou pas
1) sans le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
ne plantera pas
Dim MyArray() As Integer
ReDim MyArray(10, 20)
ReDim MyArray(10, 15)
ReDim MyArray(15, 15)
2) avec le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
plantera sur la dernière ligne car on tente de changer la limite de
la 1ere dimension ( donc pas la dernière) ce qui est interdit
Dim MyArray() As Integer
ReDim Preserve MyArray(10, 20)
ReDim Preserve MyArray(10, 15)
ReDim Preserve MyArray(15, 15)
A+
JLuc wrote:Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la
colone A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces
deux valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît
disant que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction
dans mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
--
JLuc
Re,Bonjour
ton code renvoi uniquement la première occurrence de la valeur cherchée
voi ça http://cjoint.com/?hult1oysNY
merci pour ton aide et bonne journée
Abed_H
Autant pour moi, anonymousA a raison :/ j'ai peut etre repondu un peu
vite.
Voila ce que, moi, j'utiliserais :
Dim Tablo()
nb = 0
For Each c In Range("A1:A20")
' peut etre remplacer par un countif
' plus interessant si la plage est grande :oÞ
If c.Value = "D1405" Then
nb = nb + 1
End If
Next
If nb > 0 Then
Redim Tablo(1 To nb, 1 To 3)
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
End If
Bonjour anonymousA
si j'utilse le mot clé ReDim sans Preserve j'obtient uniquement la dernière
occurrence du mot cherché.
comment faire pour obtenir les n occurnce du mot cherché et les affichées ?
merci par d'avance
Bonne journée.
Abed_H
Bonjour,
il me semble qu'il y a une confusion
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
En effet, ci-dessous, un extrait de l'aide d'Excel sur Redim
Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner
que la dernière dimension du tableau. Vous ne pouvez en aucun cas
modifier le nombre de dimensions.
Par ailleurs, l'exemple suivant permet de se rendre compte de ce qu'on
peut fair ou pas
1) sans le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
ne plantera pas
Dim MyArray() As Integer
ReDim MyArray(10, 20)
ReDim MyArray(10, 15)
ReDim MyArray(15, 15)
2) avec le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
plantera sur la dernière ligne car on tente de changer la limite de
la 1ere dimension ( donc pas la dernière) ce qui est interdit
Dim MyArray() As Integer
ReDim Preserve MyArray(10, 20)
ReDim Preserve MyArray(10, 15)
ReDim Preserve MyArray(15, 15)
A+
JLuc wrote:
Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la
colone A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces
deux valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît
disant que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction
dans mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
--
JLuc
Re,Bonjour
ton code renvoi uniquement la première occurrence de la valeur cherchée
voi ça http://cjoint.com/?hult1oysNY
merci pour ton aide et bonne journée
Abed_HAutant pour moi, anonymousA a raison :/ j'ai peut etre repondu un peu
vite.
Voila ce que, moi, j'utiliserais :
Dim Tablo()
nb = 0
For Each c In Range("A1:A20")
' peut etre remplacer par un countif
' plus interessant si la plage est grande :oÞ
If c.Value = "D1405" Then
nb = nb + 1
End If
Next
If nb > 0 Then
Redim Tablo(1 To nb, 1 To 3)
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
End IfBonjour anonymousA
si j'utilse le mot clé ReDim sans Preserve j'obtient uniquement la dernière
occurrence du mot cherché.
comment faire pour obtenir les n occurnce du mot cherché et les affichées ?
merci par d'avance
Bonne journée.
Abed_HBonjour,
il me semble qu'il y a une confusionTon probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
En effet, ci-dessous, un extrait de l'aide d'Excel sur Redim
Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner
que la dernière dimension du tableau. Vous ne pouvez en aucun cas
modifier le nombre de dimensions.
Par ailleurs, l'exemple suivant permet de se rendre compte de ce qu'on
peut fair ou pas
1) sans le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
ne plantera pas
Dim MyArray() As Integer
ReDim MyArray(10, 20)
ReDim MyArray(10, 15)
ReDim MyArray(15, 15)
2) avec le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
plantera sur la dernière ligne car on tente de changer la limite de
la 1ere dimension ( donc pas la dernière) ce qui est interdit
Dim MyArray() As Integer
ReDim Preserve MyArray(10, 20)
ReDim Preserve MyArray(10, 15)
ReDim Preserve MyArray(15, 15)
A+
JLuc wrote:Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcourir la
colone A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces
deux valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message apparaît
disant que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correction
dans mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimentionner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
--
JLuc
Re,Bonjour
ton code renvoi uniquement la première occurrence de la valeur cherch ée
voi ça http://cjoint.com/?hult1oysNY
merci pour ton aide et bonne journée
Abed_HAutant pour moi, anonymousA a raison :/ j'ai peut etre repondu un peu
vite.
Voila ce que, moi, j'utiliserais :
Dim Tablo()
nb = 0
For Each c In Range("A1:A20")
' peut etre remplacer par un countif
' plus interessant si la plage est grande :oÞ
If c.Value = "D1405" Then
nb = nb + 1
End If
Next
If nb > 0 Then
Redim Tablo(1 To nb, 1 To 3)
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
End IfBonjour anonymousA
si j'utilse le mot clé ReDim sans Preserve j'obtient uniquement la dernière
occurrence du mot cherché.
comment faire pour obtenir les n occurnce du mot cherché et les aff ichées ?
merci par d'avance
Bonne journée.
Abed_HBonjour,
il me semble qu'il y a une confusionTon probleme se reduit à une seule chose : on ne peut redimention ner
que la premiere dimention d'un tableau ;-)
En effet, ci-dessous, un extrait de l'aide d'Excel sur Redim
Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner
que la dernière dimension du tableau. Vous ne pouvez en aucun cas
modifier le nombre de dimensions.
Par ailleurs, l'exemple suivant permet de se rendre compte de ce qu' on
peut fair ou pas
1) sans le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
ne plantera pas
Dim MyArray() As Integer
ReDim MyArray(10, 20)
ReDim MyArray(10, 15)
ReDim MyArray(15, 15)
2) avec le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
plantera sur la dernière ligne car on tente de changer la limite de
la 1ere dimension ( donc pas la dernière) ce qui est interdit
Dim MyArray() As Integer
ReDim Preserve MyArray(10, 20)
ReDim Preserve MyArray(10, 15)
ReDim Preserve MyArray(15, 15)
A+
JLuc wrote:Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcouri r la
colone A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces
deux valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message appa raît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correc tion
dans mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimention ner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
--
JLuc
Re,Bonjour
ton code renvoi uniquement la première occurrence de la valeur cherch ée
voi ça http://cjoint.com/?hult1oysNY
merci pour ton aide et bonne journée
Abed_H
Autant pour moi, anonymousA a raison :/ j'ai peut etre repondu un peu
vite.
Voila ce que, moi, j'utiliserais :
Dim Tablo()
nb = 0
For Each c In Range("A1:A20")
' peut etre remplacer par un countif
' plus interessant si la plage est grande :oÞ
If c.Value = "D1405" Then
nb = nb + 1
End If
Next
If nb > 0 Then
Redim Tablo(1 To nb, 1 To 3)
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
End If
Bonjour anonymousA
si j'utilse le mot clé ReDim sans Preserve j'obtient uniquement la dernière
occurrence du mot cherché.
comment faire pour obtenir les n occurnce du mot cherché et les aff ichées ?
merci par d'avance
Bonne journée.
Abed_H
Bonjour,
il me semble qu'il y a une confusion
Ton probleme se reduit à une seule chose : on ne peut redimention ner
que la premiere dimention d'un tableau ;-)
En effet, ci-dessous, un extrait de l'aide d'Excel sur Redim
Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner
que la dernière dimension du tableau. Vous ne pouvez en aucun cas
modifier le nombre de dimensions.
Par ailleurs, l'exemple suivant permet de se rendre compte de ce qu' on
peut fair ou pas
1) sans le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
ne plantera pas
Dim MyArray() As Integer
ReDim MyArray(10, 20)
ReDim MyArray(10, 15)
ReDim MyArray(15, 15)
2) avec le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
plantera sur la dernière ligne car on tente de changer la limite de
la 1ere dimension ( donc pas la dernière) ce qui est interdit
Dim MyArray() As Integer
ReDim Preserve MyArray(10, 20)
ReDim Preserve MyArray(10, 15)
ReDim Preserve MyArray(15, 15)
A+
JLuc wrote:
Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcouri r la
colone A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces
deux valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message appa raît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correc tion
dans mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimention ner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
--
JLuc
Re,Bonjour
ton code renvoi uniquement la première occurrence de la valeur cherch ée
voi ça http://cjoint.com/?hult1oysNY
merci pour ton aide et bonne journée
Abed_HAutant pour moi, anonymousA a raison :/ j'ai peut etre repondu un peu
vite.
Voila ce que, moi, j'utiliserais :
Dim Tablo()
nb = 0
For Each c In Range("A1:A20")
' peut etre remplacer par un countif
' plus interessant si la plage est grande :oÞ
If c.Value = "D1405" Then
nb = nb + 1
End If
Next
If nb > 0 Then
Redim Tablo(1 To nb, 1 To 3)
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
End IfBonjour anonymousA
si j'utilse le mot clé ReDim sans Preserve j'obtient uniquement la dernière
occurrence du mot cherché.
comment faire pour obtenir les n occurnce du mot cherché et les aff ichées ?
merci par d'avance
Bonne journée.
Abed_HBonjour,
il me semble qu'il y a une confusionTon probleme se reduit à une seule chose : on ne peut redimention ner
que la premiere dimention d'un tableau ;-)
En effet, ci-dessous, un extrait de l'aide d'Excel sur Redim
Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner
que la dernière dimension du tableau. Vous ne pouvez en aucun cas
modifier le nombre de dimensions.
Par ailleurs, l'exemple suivant permet de se rendre compte de ce qu' on
peut fair ou pas
1) sans le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
ne plantera pas
Dim MyArray() As Integer
ReDim MyArray(10, 20)
ReDim MyArray(10, 15)
ReDim MyArray(15, 15)
2) avec le mot clé Preserve , on peut tout faire y.c changer les
limites de toutes les dimensions. Si on exécute le code suivant , VBA
plantera sur la dernière ligne car on tente de changer la limite de
la 1ere dimension ( donc pas la dernière) ce qui est interdit
Dim MyArray() As Integer
ReDim Preserve MyArray(10, 20)
ReDim Preserve MyArray(10, 15)
ReDim Preserve MyArray(15, 15)
A+
JLuc wrote:Bonjour tout le monde
je débute avec les tableaux, j'utilise le code suivant, parcouri r la
colone A et trouvé l'occurrence de la chaîne de caractère "D1405"
s'il éxiste obtenir la valeur de la cellule à côté C et D et mêtre ces
deux valeurs dans un tableau pour les affichées après.
Alors dans la colonne A si la valeur cherché existe une fois le code
fonctionne normal pas d'erreur
s'il ya des doublons l'erreur n°9 se déclanche un message appa raît disant
que l'indice n'appartient pas à la selection.
ou est l'erreur quelqu'un pourait il m'aider ? de faire des correc tion
dans mon code et m'indiqué ou se trouve l'erreur.
Merci par d'avance.
Abed_H
Sub test()
Dim Tablo() As String
i = 1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
For j = 1 To 3
ReDim Preserve Tablo(i, j)
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Range("h5").Resize(i, j).Value = Tablo
End Sub
Ton probleme se reduit à une seule chose : on ne peut redimention ner
que la premiere dimention d'un tableau ;-)
Dim Tablo(1, 3)
i=1
For Each c In Range("A1:A20")
If c.Value = "D1405" Then
ReDim Preserve Tablo(i, 3)
For j = 1 To 3
Tablo(i, j) = c.Offset(, j)
Next j
i = i + 1
End If
Next c
Ceci devrait convenir, pas tester
--
JLuc
--
JLuc