[Résolu par Hieu] clearcontents ds tableau : pb sur choix colonnes (déf. champ de la variable)

zebanx

XLDnaute Accro
Bonsoir à tous,

Je souhaiterai faire un clear contents sur un tableau :
- en choisissant les colonnes concernées par le clearcontents (variable "j")
- en effectuant une boucle sur la colonne "B" pour lancer le clearcontents.

Je n'arrive pas à définir ma boucle pour le faire travailler sur les colonnes 1,3, 4 et 9.
Le fichier est beaucoup plus explicite.

Mon code bug déjà sur la définition de la variable et j'aurais svp besoin de votre aide pour le modifier
(array ??).

Vous en remerciant par avance, bonne soirée
zebanx

------
Sub mef()

Dim i As Integer, derligne
Dim j As Integer
Dim n As Long

derligne = Range("B3").End(xlDown).Row

j = {1, 3, 4, 9} 'bug déjà ici

derligne = Range("B3").End(xlDown).Row

For n = 1 To UBound(j)
For i = derligne To 3 Step -1
If Cells(i, 2).Value = Cells(i - 1, 2).Value Then
Cells(i, n).ClearContents
End If
Next i
Next n

End Sub
 

Pièces jointes

  • variable multiples_simple.xls
    42.5 KB · Affichages: 21
Dernière édition:

Hieu

XLDnaute Impliqué
Salut,

Tu définies j comme étant un integer, puis tu fais "quelque chose" d'autre ^^
Perso, je ne définie pas, et ça marche bien.

J'ai rajouté une valeur bidon, dans le tableau j, car lorsque tu ne définies pas, il fait un tableau de 0 à ... (ici, dim j as tab(0 to 4))

Reviens vers moi, si ce n'est pas clair
VB:
Sub mef()

Dim i As Integer, derligne
' Dim j As Integer
Dim n As Long

' derligne = Range("B3").End(xlDown).Row

j = Array(0, 1, 3, 4, 9) ' ici une petite modif

derligne = Range("B3").End(xlDown).Row

For n = 1 To UBound(j)
For i = derligne To 3 Step -1
If Cells(i, 2).Value = Cells(i - 1, 2).Value Then
Cells(i, j(n)).ClearContents ' ici une petite modif
End If

Next i
Next n

End Sub
 

zebanx

XLDnaute Accro
Bonjour Hieu,

Je te remercie pour toutes ces précisions, et le rendu est impeccable.
C'est clair sur toutes les parties du codes (dim (), définition de la variable y compris le 0*, définition "j(n)").

Très content de tes corrections :).

Bonne soirée,
zebanx
-----
ou sinon ce que j'avais vu sur un autre code avec du texte sans tout comprendre et tes modifications m'ont permis de mieux comprendre
j= Array(1, 3, 4, 9) ' démarrage possible sans le 0 si on corrige en dessous
....
For n = 0 To UBound(j)
 

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 193
Membres
102 810
dernier inscrit
mohammedaminelahbali