[VBA]Déplacer lignes dans une autre feuille
Detsou
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
melanie1324 Messages postés 1504 Date d'inscription Statut Membre Dernière intervention -
melanie1324 Messages postés 1504 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Excusez-moi, mais c'est sans doute une question qui revient souvent, j'en ai vu beaucoup en faisant une recherche, cependant aucune ne répondait vraiment à mon cas.
Alors voilà mon problème : Je cherche à déplacer plusieurs lignes dans une autre feuille d'un même classeur sous excel, sous conditions.
La condition étant : " cellule non vide ".
Ma colonne est la colonne Q, je voudrais que pour toutes cellules non vides, les lignes de ces cellules soient déplacés dans une autre feuille, et à la suite à partir de la ligne 3.
J'ai essayé plusieurs codes infructueux pour l'instant, je n'ai donc aucune réelle base à vous montrer sur laquelle travailler...
En espérant qu'on puisse m'aider, merci d'avance !
Excusez-moi, mais c'est sans doute une question qui revient souvent, j'en ai vu beaucoup en faisant une recherche, cependant aucune ne répondait vraiment à mon cas.
Alors voilà mon problème : Je cherche à déplacer plusieurs lignes dans une autre feuille d'un même classeur sous excel, sous conditions.
La condition étant : " cellule non vide ".
Ma colonne est la colonne Q, je voudrais que pour toutes cellules non vides, les lignes de ces cellules soient déplacés dans une autre feuille, et à la suite à partir de la ligne 3.
J'ai essayé plusieurs codes infructueux pour l'instant, je n'ai donc aucune réelle base à vous montrer sur laquelle travailler...
En espérant qu'on puisse m'aider, merci d'avance !
A voir également:
- Excel déplacer une ligne dans une autre feuille
- Déplacer une colonne excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Partager photos en ligne - Guide
5 réponses
bonjour,
voici ton code
sub déplacer ()
j=3
for i =2 to 10000 'de la deuxième ligne à la 10000
if sheets("feuilledetacolonneQ").cells(i,18) <> "" 'remplaces feuilledetacolonneQ par ton nom de feuille ou se situe ta fameuse colonne q
sheets("feuilledetacolonneQ").select
rows.cut
sheets("Feuille arrivée").select 'remplaces feuille arrivée par ton nom de feuille ou tes lignes doivent êtres déplacées
cells(j,1).select
activesheet.paste
j=j+1
end if
next i
end sub
voici ton code
sub déplacer ()
j=3
for i =2 to 10000 'de la deuxième ligne à la 10000
if sheets("feuilledetacolonneQ").cells(i,18) <> "" 'remplaces feuilledetacolonneQ par ton nom de feuille ou se situe ta fameuse colonne q
sheets("feuilledetacolonneQ").select
rows.cut
sheets("Feuille arrivée").select 'remplaces feuille arrivée par ton nom de feuille ou tes lignes doivent êtres déplacées
cells(j,1).select
activesheet.paste
j=j+1
end if
next i
end sub
Merci pour la réponse rapide. Cependant, j'ai quelques problèmes :
Erreur d'exécution '1004':
Cette sélection n'est pas valide.
Raisons possibles:
- Les zones de copie et de collage ne peuvent se superposer que si elles sont de dimension et de forme identiques.
- Si vous utilisez la commande Créer du menu Insertion Nom, la ligne ou la colonne qui contiennent les noms proposés ne seront pas incluses.
Sachant que j'ai dû modifié le code parce qu'Excel me disait qu'il y avait une erreur de base. Voilà ce qu'il donne à la fin :
( J'ai du rajouté un Then, après le If Sheets("feuil2") .... )
Erreur d'exécution '1004':
Cette sélection n'est pas valide.
Raisons possibles:
- Les zones de copie et de collage ne peuvent se superposer que si elles sont de dimension et de forme identiques.
- Si vous utilisez la commande Créer du menu Insertion Nom, la ligne ou la colonne qui contiennent les noms proposés ne seront pas incluses.
Sachant que j'ai dû modifié le code parce qu'Excel me disait qu'il y avait une erreur de base. Voilà ce qu'il donne à la fin :
Sub déplacer() j = 3 For i = 2 To 10000 'de la deuxième ligne à la 10000 If Sheets("feuil2").Cells(i, 18) <> "" Then 'remplaces feuilledetacolonneQ par ton nom de feuille ou se situe ta fameuse colonne q Sheets("feuil2").Select Rows.Cut Sheets("feuil3").Select 'remplaces feuille arrivée par ton nom de feuille ou tes lignes doivent êtres déplacées Cells(j, 1).Select ActiveSheet.Paste j = j + 1 End If Next i End Sub
( J'ai du rajouté un Then, après le If Sheets("feuil2") .... )
bonjour,
je sais pourquoi, un erreur de débutante :
Sub déplacer()
j = 3
For i = 2 To 10000
'de la deuxième ligne à la 10000
If Sheets("feuil2").Cells(i, 18) <> "" Then
'remplaces feuilledetacolonneQ par ton nom de feuille ou se situe ta fameuse colonne q
Sheets("feuil2").Select
Rows(i).Cut
Sheets("feuil3").Select
'remplaces feuille arrivée par ton nom de feuille ou tes lignes doivent êtres déplacées
Cells(j, 1).Select
ActiveSheet.Paste
j = j + 1
End If
Next i
End Sub
je sais pourquoi, un erreur de débutante :
Sub déplacer()
j = 3
For i = 2 To 10000
'de la deuxième ligne à la 10000
If Sheets("feuil2").Cells(i, 18) <> "" Then
'remplaces feuilledetacolonneQ par ton nom de feuille ou se situe ta fameuse colonne q
Sheets("feuil2").Select
Rows(i).Cut
Sheets("feuil3").Select
'remplaces feuille arrivée par ton nom de feuille ou tes lignes doivent êtres déplacées
Cells(j, 1).Select
ActiveSheet.Paste
j = j + 1
End If
Next i
End Sub
" Impossible de modifier une cellule fusionnée "
Après quoi, le " Rows(i).Cut " est surligné en jaune. Je ne comprends pas vraiment, je n'ai pas de cellule fusionnée...
( Aussi, c'est la colonne Q, donc c'est Cells(i, 17) non ? )
Après quoi, le " Rows(i).Cut " est surligné en jaune. Je ne comprends pas vraiment, je n'ai pas de cellule fusionnée...
( Aussi, c'est la colonne Q, donc c'est Cells(i, 17) non ? )
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bonjour,
on va contourner le pb :
Sub déplacer()
j = 3
do while i <= 10000
'de la deuxième ligne à la 10000
If Sheets("feuil2").Cells(i, 17) <> "" Then
'remplaces feuilledetacolonneQ par ton nom de feuille ou se situe ta fameuse colonne q
Sheets("feuil2").Select
Rows(i).copy
Sheets("feuil3").Select
'remplaces feuille arrivée par ton nom de feuille ou tes lignes doivent êtres déplacées
Cells(j, 1).Select
ActiveSheet.Paste
Sheets("feuil2").Select
Rows(i).Delete Shift:=xlUp
i=i-1
j = j + 1
End If
i=i+1
loop
End Sub
on va contourner le pb :
Sub déplacer()
j = 3
do while i <= 10000
'de la deuxième ligne à la 10000
If Sheets("feuil2").Cells(i, 17) <> "" Then
'remplaces feuilledetacolonneQ par ton nom de feuille ou se situe ta fameuse colonne q
Sheets("feuil2").Select
Rows(i).copy
Sheets("feuil3").Select
'remplaces feuille arrivée par ton nom de feuille ou tes lignes doivent êtres déplacées
Cells(j, 1).Select
ActiveSheet.Paste
Sheets("feuil2").Select
Rows(i).Delete Shift:=xlUp
i=i-1
j = j + 1
End If
i=i+1
loop
End Sub