• Initiateur de la discussion Initiateur de la discussion Creepy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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@
 
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
 
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é
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
378
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
455
Réponses
6
Affichages
224
Réponses
1
Affichages
611
Réponses
2
Affichages
429
Retour