Apprendre à faire une boucle

  • Initiateur de la discussion Initiateur de la discussion Boby71C
  • 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 !

Boby71C

XLDnaute Impliqué
Bonjour à tous
Pouvez vous m'apprendre à faire une boucle de recherche ?
J'ai un document de X lignes dans la feuille TOTAL.
Je désir que chaque ligne qui a un D en colonne N soit recopiée dans la feuille Dev à partir de A2
Chaque ligne qui a un E en colonne N soit recopiée dans la feuille Enr à partir de A2
Chaque ligne qui a un O en colonne N soit recopiée dans la feuille Ouv à partir de A2
Ci-joint mon fichier allègé
😱 J'ai commencé la procèdure Vba mais je n'y connai pas grand chôse et j'aimerai apprendre.Je ne voudrai pas me contenter de lignes VBA que je ne comprendrai pas !Je suis certain que vous allez le réduire de moitié quand vous l'aurez consulté mais je travail avec l'enregistreur de macros.
Ci-joint mon fichier allègé
Merci beaucoup
@+ [file name=ProjCAM.zip size=21136]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ProjCAM.zip[/file]
 

Pièces jointes

Bonjour bobby

Une proposition, j'ai essayé de commenté le code.


Option Explicit
Sub Bouton1_QuandClic()
Dim c As Range
Dim feuille As Worksheet
Dim i As Byte
Dim derligne As Integer

'pour chaque cellule de la zone n2:n jusqu'à la derniere cellule non vide
For Each c In Range('n2:n' & Range('n65536').End(xlUp).Row)
       
Select Case c 'suivant la valeur de la cellule
               
Case 'O': Set feuille = Sheets('Ouv') 'si la valeur est 'O', alors la variable
               
'feuille = la feuille Ouv
               
Case 'D': Set feuille = Sheets('Dev') 'idem
               
Case 'E': Set feuille = Sheets('Enr') 'idem
       
End Select
       
       
With feuille 'avec la feuille
                derligne = .Range('N65536').End(xlUp).Row + 1
'recherche de la premiere ligne vide
               
For i = 1 To 15 'boucle sur les 15 colonnes
                        .Cells(derligne, i) = Cells(c.Row, i)
'copie les valeurs
               
Next i
       
End With
Next c
End Sub

salut
 
Bonjour Hervé
C'est parfait, tout fonctionne comme demandé.
Je vais tenter de décortiquer le code pour le comprendre. 😱 😱
Comme tu l'as compris, je ne suis pas doué en VBA à part enregister du code.
Je dois addapter avec d'autres données qui sont à prendre dans d'autre colonnes. Je vais éssayer de me débrouiller.
Pour l'instant, je ne comprend pas tout !! Je vais faire du pas à pas.
Merci beaucoup pour ton aide
Très bon Week End
@+
 
Re Hervé
J'ai bien compris la ligne qui suit:
Case 'D': Set feuille = Sheets('Dev')
Si nous trouvons D, nous copions dans la feuille DEV.
Se que je n'arrive pas à comprendre, c'est comment tu fais pour chercher D dans la colonne 14.
Il est impératif que je comprenne celà car je dois faire la même recherche en colonne G et copier les lignes sur d'autres feuilles que je n'avai pas misent dans mon petit fichier pour l'allèger.
Merci pour ton aide
@+
 
Bonsoir les amis
Merci beaucoup pour vos précieux conseils.
Miracle, j'y suis arrivé.
Je récupère les données de 2 colonnes et je vais copier sur 13 feuilles.
Au début, je n'avais pas compris comment rechercher les différentes données
C'était tout bête, il fallait changer les n dans cette ligne par G

For Each c In Range('n2:n' & Range('n65536').End(xlUp).Row)

et également dans cette ligne

derligne = .Range('N65536').End(xlUp).Row + 1

Merci beaucoup et très bon Week End.

@+
 
- 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

Discussions similaires

Réponses
9
Affichages
694
Retour