Autres boucle copier ligne

dadaze

XLDnaute Nouveau
Bonjour les Exceleurs,

je viens vers vous car je tourne en rond depuis quelques temps si cela est possible votre aide sera la bienvenue.
Donc voici mon problème j'ai créé une boucle avec une condition si cette dernière est respectée je copie la ligne entière vers un autre onglet.
Le problème c'est que plusieurs cellules respectent la condition mais une seule est copiée dans l'autre onglet.
voici mon code ci dessous. bien que je me doute que c'est pas grand chose je suis trop agacé pour continuer à plancher dessus.
Merci à tous ceux qui me consacreront un peu de leur temps.

Dim Lig_2 As Long déclaration des variables
Dim Lig_C As Long
Application.ScreenUpdating = 0
Feuil10.Select je selectionne la feuille 10

For Lig_2 = 1 To [B65536].End(xlUp).Row je définis ma boucle

Select Case Cells(Lig_2, 84).Value je boucle en colonne 84

Case Is = "DA" si la cellule affiche DA

Cells.Rows(Lig_2).Copy je copie toute la ligne

Feuil11.Select je sélectionne la feuille 11
Lig_C = Feuil11.Range("B65536").End(xlUp).Row + 1 je vais à la ligne b655536 je remonte jusqu à le première cellule non vide je me positionne juste en dessous
Cells(Lig_C, 1).PasteSpecial xlPasteValuesAndNumberFormats je colle la ligne

Application.CutCopyMode = False
End Select

Next
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Dadaze,
Utilisez la balise </> pour le code c'est plus lisible ( à droite de l'icone GIF )
Sans fichier difficile de deviner.
Après avoir selectionné la Feuil11 vous revenez au suivant, mais la Feuil10 n'est pas sélectionnée. Donc je pense que le souci est là.
VB:
Sub essai()
Dim Lig_2 As Long 'déclaration des variables
Dim Lig_C As Long
Application.ScreenUpdating = 0
For Lig_2 = 1 To F10.[B65536].End(xlUp).Row 'je définis ma boucle
    Select Case Sheets("Feuil10").Cells(Lig_2, 84).Value 'je boucle en colonne 84
        Case Is = "DA" 'si la cellule affiche DA
            Cells.Rows(Lig_2).Copy 'je copie toute la ligne
            Feuil11.Select 'je sélectionne la feuille 11
            Lig_C = Feuil11.Range("B65536").End(xlUp).Row + 1 'je vais à la ligne b655536 je remonte jusqu à le première cellule non vide je me positionne juste en dessous
            Cells(Lig_C, 1).PasteSpecial xlPasteValuesAndNumberFormats 'je colle la ligne
            Application.CutCopyMode = False
    End Select
Next
End Sub
et comme il n'y a qu'un Case le If est peut être plus rapide :
Code:
Sub essai()
Dim Lig_2 As Long 'déclaration des variables
Dim Lig_C As Long
Set F10 = Sheets("Feuil10")
Set F11 = Sheets("Feuil11")
Application.ScreenUpdating = 0
For Lig_2 = 1 To [B65536].End(xlUp).Row 'je définis ma boucle
    If F10.Cells(Lig_2, 84) = "DA" Then 'je boucle en colonne 84
        F10.Cells.Rows(Lig_2).Copy 'je copie toute la ligne
        Lig_C = F11.Range("B65536").End(xlUp).Row + 1 'je vais à la ligne b655536 je remonte jusqu à le première cellule non vide je me positionne juste en dessous
        F11.Cells(Lig_C, 1).PasteSpecial xlPasteValuesAndNumberFormats 'je colle la ligne
    End If
Next
Application.CutCopyMode = False
End Sub
Enfin êtes vous sur qu'un Feuil10 il y a des choses en colonne B, sinon comme vous recherchez le dernier de la colonne B vous écrirez toujours sur la ligne 1 de la Fuil11.
 

dadaze

XLDnaute Nouveau
Merci Sylvanu sa fonctionne parfaitement
j' ai simplement modifié Set F10 = Sheets("Feuil10") en Set F10 = Feuil 10 idem pour la feuille 11
Sinon j'avais le message d'erreur l'indice n'appartient pas à la sélection.
En tout cas sans votre aide j y serai encore
Mille merci bonne soirée
 

Statistiques des forums

Discussions
313 198
Messages
2 096 145
Membres
106 504
dernier inscrit
camntt