export lignes à partir d'une cellule donnée

JULIANSAT

XLDnaute Junior
Bonjour à tous
Je souhaite concaténer certaines lignes d’une feuille d’import « Import » sur une autre feuille (ListePlan). Les lignes récupérées doivent être copiées à partir de la cellule D20. Je ne peux pas ajouter de colonnes sur la feuille 1.
Comment faire ?
Merci bcp
Bonne journée.
Julian

************************************
Sub Transfert()
TransfertListePlan
End Sub
Sub TransfertListePlan()
Dim Cell As Range
Sheets("ListePlan").Range("D20:K1000").Clear
With Sheets("Import")
For Each Cell In .Range("B5:B" & .Range("B65536").End(xlUp).Row)
If Cell.Offset(0, 0) <> "" And Cell.Offset(0, 1) <> "" And Cell.Offset(0, 3) = "" Then
Cell.EntireRow.Copy Destination:=Sheets("ListePlan").Range("B" & Sheets("ListePlan").Range("B65536").End(xlUp).Row + 1).Offset(0, -1)
End If
Next
End With
End Sub
**************************
 

Pièces jointes

  • TEST 2.xls
    34.5 KB · Affichages: 32
  • TEST 2.xls
    34.5 KB · Affichages: 40
  • TEST 2.xls
    34.5 KB · Affichages: 42

Robert

XLDnaute Barbatruc
Repose en paix
Re : export lignes à partir d'une cellule donnée

Bonjour Juliansat, bonjour el forum,

Je n'ai pas bien compris si le tableau de l'onglet Import était figé ou pas à cause des petits points en H4 et I4... Du coup, j'ai considéré qu'il pouvait y avoir plus ou moins de colonnes avec le code qui correspond :
Code:
Sub Transfert()
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'déclare la variable dest (cellule de DESTination)
Dim dc As Integer 'déclare la variable dc (Dernière Colonne)

Sheets("ListePlan").Range("D20:" & Cells(Application.Rows.Count, Application.Columns.Count).Address(0, 0)).Clear 'supprime les anciennes données
With Sheets("Import") 'prend en compte l'onglet "Import"
    For Each cel In .Range("B5:B" & .Cells(Application.Rows.Count, 2).End(xlUp).Row) 'boucle sur toutes les cellules éditées cel de la colonne 2 (=B)
        If cel <> "" And cel.Offset(0, 1) <> "" And cel.Offset(0, 3) = "" Then 'condition : si cel n'est pas vide (et) la cellule en colonne C n'est pas vide (et) la cellule en colonne E est vide
            With Sheets("ListePlan") 'prend en compte l'onglet "ListePlan"
                'définit la cellule de destination dest (D20 si D20 est vide sinon, la première cellule vide de la colonne D
                Set dest = IIf(.Range("D20").Value = "", .Range("D20"), .Cells(Application.Rows.Count, 4).End(xlUp).Offset(1, 0))
            End With 'fin de la prise en compte de l'onglet "ListePlan"
            dc = .Cells(cel.Row, Application.Columns.Count).End(xlToLeft).Column 'définit la dernière colonne éditée sur la ligne de cel
            .Range(cel, .Cells(cel.Row, dc)).Copy dest 'copy les cellules éditées de la ligne de cel et les colle dans dest
        End If 'fin de la condition
    Next cel 'prochaine cellule de la boucle
End With 'fin de la prise en compte de l'onglet "Import"
End Sub
Le fichier :
 

Pièces jointes

  • Juliansat_v01.xls
    38.5 KB · Affichages: 32
  • Juliansat_v01.xls
    38.5 KB · Affichages: 33
  • Juliansat_v01.xls
    38.5 KB · Affichages: 32

JULIANSAT

XLDnaute Junior
Re : export lignes à partir d'une cellule donnée

Merci beaucoup Robert

Les données de la feuille "import" proviennet d'un transfert depuis la CAO.

Les données sont tjs différentes. Toutefois nous avons tjs les mêmes colonnes.

Bonne journée.

Cordialement

Julian
 

Statistiques des forums

Discussions
312 370
Messages
2 087 688
Membres
103 639
dernier inscrit
NIEMASAFI