emicoma
Nouveau membre
Bonjour,
Je cherche à copier les lignes d'un tableau contenant une valeur dans la colonne 3, sur une autre feuille, et supprimer les lignes vides sur cette dernière.
Concrètement : un tableau des règlements clients, recopiés sur une feuille banque où on trouvera que les règlements "cb"par exemple.
je me suis inspirée d'exemples, ce qui me donne :
[cpp]Option Explicit
Public Sub Copyreglements()
' COPIE DES LIGNES DESIREES DANS LES FEUILLES DE CALCUL DEDIEES
Dim Rw As Range
Dim Ligne As Long
Dim f_destination As Worksheet
Set f_destination = Worksheets("Sheet2")
' Sélectionne l'ensemble des données (utile pour qu'Excel ne "réfléchisse" pas sur les 65000 lignes)
Sheets("Sheet1").Select
ActiveCell.SpecialCells(xlLastCell).Select
Range(Selection, Cells(1)).Select
' Boucle qui va passer sur chaque ligne de la sélection afin de déterminer si des lignes contiennent le flag voulu
' puis copie dans une deuxième feuille de calcul
For Each Rw In Selection.Rows
Ligne = Rw.Row
If Rw.Cells(1, 3).Value = "cb" Then
Rw.Copy Worksheets("Sheet2").Cells(Ligne, 1).EntireRow
End If
Next Rw
' Supression des lignes vierges dans les feuilles de calcul récemment constituées
Dim derli
Dim r
Sheets("Sheet2").Activate
With ActiveSheet.UsedRange
derli = .Row + .Rows.Count - 1
End With
Application.ScreenUpdating = False
For r = derli To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
End Sub
[/cpp]
Mais il ne se passe absolument rien quand je lance la macro depuis excel.
Avec ou sans la partie qui efface les lignes vierges, c'est pareil.
Ma feuille origine est "Sheet1", la feuille de destination "Sheet2".
Après des heures de tests et essais divers, je n'ai vraiment plus aucune idée, dans la mesure où en plus je débute...
Merci de votre aide !
Je cherche à copier les lignes d'un tableau contenant une valeur dans la colonne 3, sur une autre feuille, et supprimer les lignes vides sur cette dernière.
Concrètement : un tableau des règlements clients, recopiés sur une feuille banque où on trouvera que les règlements "cb"par exemple.
je me suis inspirée d'exemples, ce qui me donne :
[cpp]Option Explicit
Public Sub Copyreglements()
' COPIE DES LIGNES DESIREES DANS LES FEUILLES DE CALCUL DEDIEES
Dim Rw As Range
Dim Ligne As Long
Dim f_destination As Worksheet
Set f_destination = Worksheets("Sheet2")
' Sélectionne l'ensemble des données (utile pour qu'Excel ne "réfléchisse" pas sur les 65000 lignes)
Sheets("Sheet1").Select
ActiveCell.SpecialCells(xlLastCell).Select
Range(Selection, Cells(1)).Select
' Boucle qui va passer sur chaque ligne de la sélection afin de déterminer si des lignes contiennent le flag voulu
' puis copie dans une deuxième feuille de calcul
For Each Rw In Selection.Rows
Ligne = Rw.Row
If Rw.Cells(1, 3).Value = "cb" Then
Rw.Copy Worksheets("Sheet2").Cells(Ligne, 1).EntireRow
End If
Next Rw
' Supression des lignes vierges dans les feuilles de calcul récemment constituées
Dim derli
Dim r
Sheets("Sheet2").Activate
With ActiveSheet.UsedRange
derli = .Row + .Rows.Count - 1
End With
Application.ScreenUpdating = False
For r = derli To 1 Step -1
If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
Next r
End Sub
[/cpp]
Mais il ne se passe absolument rien quand je lance la macro depuis excel.
Avec ou sans la partie qui efface les lignes vierges, c'est pareil.
Ma feuille origine est "Sheet1", la feuille de destination "Sheet2".
Après des heures de tests et essais divers, je n'ai vraiment plus aucune idée, dans la mesure où en plus je débute...
Merci de votre aide !