Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

array et tableaux

C

Creepy

Guest
Bonjour à toutes & tous,

J'ai un tableau et je dois supprimer certaines lignes mais pas d'autres.

Du coup je veux automatiser ca mais comme j'ai 14 lignes à trouver et supprimer sur 14500. je me suis dis je vais faire une macro.

Je pourrais faire une macro du style if cell.value ="dede" then, if cell.value"dada" then.

Mais bon le repeter 14 fois c'est chiant et pas propre. Je pourrais faire un select case mais c'est pareil c'st long.
Donc je pensais faire un tableau, du genre Qui = array("dede","dada", etc ...) et faire une rechercher if cell.value = qui etc....

Mais je n'y connais rien en Array et tableaux.

Ma question est simple comment s'exploite un array ou un tableau ? ou plus simplement avez vous des liens sympas qui expliquent cela ?

Merci d'avance

Creepy
 
@

@Christophe@

Guest
Bonjour,

Pour quoi tous simplement une boucle for each:


Sub Clean()
Dim Cell as range

for each cell in range("A1:A14500")
if cell.value = "dede" or cell.value = "dada" then cell.value = ""
next cell
columns(1).specialcells(xlcelltypeblanks).entirerow.delete
end sub

Bonne journée

@Christophe@
 
S

sousou

Guest
Bonjour
un petit code te permettant d'avoir une vue sur les tableaux pou ton besoin.

A supposer que tes données soient dans la feuille deux et que la selection active au moment du lancement soit la liste de tes valeurs recherchés.

Principe:
Avec la selection tu remplis le tableau et pour chaque ligne de tes données tu regarde si elle existe dans le tableau

Dim tableau()
Dim nbligne

Sub deb()
remplis
Set maplage = Sheets(2).UsedRange
For Each valeurs In maplage
If efface(valeurs) = 1 Then
valeurs.EntireRow.Clear
End If
Next
End Sub
Sub remplis()
nbligne = Selection.Rows.Count
ReDim tableau(nbligne)
For Each i In Selection
tableau(n) = i
n = n + 1
Next
End Sub
Function efface(i)
efface = 0
For n = 0 To nbligne
If tableau(n) = i Then efface = 1
Next
End Function
 
Z

Zon

Guest
Salut,

Creepy un autre exemple, je fais tout par tableau:

Sub Creepy()
Dim T, Qui(), Tabres()
Dim Test As Boolean
Dim I&, J&, K&
T = Range([A1], [A65536].End(xlUp)).Value
Qui = Array("dede", "titi","dudule")
K = 1
For I = 1 To UBound(T)
For J = 0 To UBound(Qui)
If T(I, 1) = Qui(J) Then
T(I, 1) = ""
Exit For
End If
Next J
If T(I, 1) <> "" Then
ReDim Preserve Tabres(1 To 1, 1 To K)
Tabres(1, K) = T(I, 1)
K = K + 1
Test = False
End If
Next I
T = InverseTab(Tabres, 1)
[A1].Resize(UBound(T)) = T
End Sub

Function InverseTab(T, Optional Base As Byte = 0)
Dim Temp(), I&, J&
ReDim Temp(Base To UBound(T, 2), Base To UBound(T))
For I = LBound(T, 2) To UBound(T, 2)
For J = LBound(T) To UBound(T)
Temp(I, J) = T(J, I)
Next J
Next I
InverseTab = Temp
End Function

Pour un tableau sur plusieurs colonnes il faudra rajouter une boucle.
A+++

Lien supprimé
 

Discussions similaires

Réponses
1
Affichages
346
Réponses
20
Affichages
769
Réponses
16
Affichages
792
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…