Deux boucles dans un même programme
Résolu
Sandy34
-
Sandy34 -
Sandy34 -
Bonjour,
je tourne en rond
j'ai un fichier excel avec dans un premier onglet une liste de produits. Dans un deuxième onglet j'ai une deuxième liste de produits.
Je veux supprime les ligne du premier onglet en fonction de la liste du deuxième onglet,
j'ai la programmation suivante
Dim Ligne_lue As Long
Dim Variete As Long
Variete = 1
Ligne_lue = 2
While Cells(Ligne_lue, 2) <> ""
Cells(Ligne_lue, 2).Select
If ActiveCell.Text Like Sheets("liste propriétés").Cells(Variete, 1).Text Then
Range(Cells(Ligne_lue, 1), Cells(Ligne_lue, 15)).Select
Selection.ClearContents
End If
Ligne_lue = Ligne_lue + 1
Wend
End Sub
Je supprime bien tous les produits du premier onglet qui correspond au premier rang de ma liste du deuxième onglet.
Mais je n'arrive pas au passer aux rang suivant du deuxième onglet.
je ne sais pas ou mettre une incrémentation de ma variable "Variete". Sachant que je veus refaire la boucle à partir de Ligne_lue+2
je tourne en rond
j'ai un fichier excel avec dans un premier onglet une liste de produits. Dans un deuxième onglet j'ai une deuxième liste de produits.
Je veux supprime les ligne du premier onglet en fonction de la liste du deuxième onglet,
j'ai la programmation suivante
Dim Ligne_lue As Long
Dim Variete As Long
Variete = 1
Ligne_lue = 2
While Cells(Ligne_lue, 2) <> ""
Cells(Ligne_lue, 2).Select
If ActiveCell.Text Like Sheets("liste propriétés").Cells(Variete, 1).Text Then
Range(Cells(Ligne_lue, 1), Cells(Ligne_lue, 15)).Select
Selection.ClearContents
End If
Ligne_lue = Ligne_lue + 1
Wend
End Sub
Je supprime bien tous les produits du premier onglet qui correspond au premier rang de ma liste du deuxième onglet.
Mais je n'arrive pas au passer aux rang suivant du deuxième onglet.
je ne sais pas ou mettre une incrémentation de ma variable "Variete". Sachant que je veus refaire la boucle à partir de Ligne_lue+2
A voir également:
- Deux boucles dans un même programme
- Comment faire deux colonnes indépendantes dans word - Guide
- Programme demarrage windows - Guide
- Deux ecran pc - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
- Nombre de jours entre deux dates excel - Guide
1 réponse
Bonjour,
Il faut mettre deux boucles imbriquées avec "for" ou "while" si on souhaite garder des while voila ce que je propose :
Le test sur cellule vide n'est pas fiable donc il vaut mieux mettre la derniere ligne
dans une variable et tester la fin de boucle avec cette variable.
A+
Cordialement,
Il faut mettre deux boucles imbriquées avec "for" ou "while" si on souhaite garder des while voila ce que je propose :
Le test sur cellule vide n'est pas fiable donc il vaut mieux mettre la derniere ligne
dans une variable et tester la fin de boucle avec cette variable.
Dim Ligne_lue As Long Dim Variete As Long Dim DernLigne As Long Dim DernVariete As Long DernLigne = Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row DernVariete = Sheets("liste propriétés").Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row Variete = 1 While Variete <= DernVariete Ligne_lue = 2 While Ligne_lue <= DernLigne Cells(Ligne_lue, 2).Select If ActiveCell.Text Like Sheets("liste propriétés").Cells(Variete, 1).Text Then Range(Cells(Ligne_lue, 1), Cells(Ligne_lue, 15)).Select Selection.ClearContents End If Ligne_lue = Ligne_lue + 1 Wend Variete = Variete + 1 Wend End Sub
A+
Cordialement,
Merci beaucoup
A+
Cdt