Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

export lignes à partir d'une cellule donnée

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

J

JULIANSAT

Guest
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

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

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
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
786
Réponses
5
Affichages
912
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…