Bonjour à tous, j'espere que tout le monde à passer un bon week end !
J'ai toujours la même feuille qui me sert de "base" de données.
Les collègues font une extraction depuis cette feuille principale pour
copier des données dans leur feuille nominative. J'ai différents boutons
avec la macro ci-après qui fait l'extraction.
Si dans ma colonne 18 la valeur contient "Céline", la macro me copie toutes
les lignes et toutes les colonnes dans la feuille Celine dès que la cellule
de la colonne 18 contient "céline".
Question : comment faire pour choisir quelle colonne je veux reporter dans
la feuille céline ?
Question : comment faire pour laisser dans la feuille céline, la ligne 1
vide avec des boutons pré-definis ?
Je m'explique : qd je lance la macro ci-dessous, cela efface entièrement les
données contenues dans la feuille céline.
Merci d'avance pour votre aide
Sub PA_101_copilignes()
Application.ScreenUpdating = False
Sheets("global").Cells.Copy
Sheets("celine").Select
Cells.Select
ActiveSheet.Paste
derlig = Range("N6543").End(xlUp).Row
For i = derlig To 2 Step -1
If Cells(i, 18).Value = "Céline" Then
i = i
Else
Cells(i, 18).EntireRow.Delete
End If
Next i
Sheets("céline").Select
Range("A2").Select
Application.ScreenUpdating = True
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
francois.forcet
Salut à toi
Pour garder la 1° ligne dans la feuille "Céline" Je te propose ton code modifié ainsi :
Sub PA_101_copilignes() Application.ScreenUpdating = False Sheets("global").Range("A2", "A" & Range("A2").SpecialCells(xlLastCell).Row).EntireRow.Copy Sheets("celine").Select Range("A2").Select ActiveSheet.Paste derlig = Range("N6543").End(xlUp).Row For i = derlig To 2 Step -1 If Cells(i, 18).Value = "Céline" Then i = i Else Cells(i, 18).EntireRow.Delete End If Next i Sheets("céline").Select Range("A2").Select Application.ScreenUpdating = True End Sub
Pour le choix des colonnes l'idéale serait de supprimer celles en trop aprés recopie Un repère serait nécessaire En mettant en ligne 1 un x comme repère aux colonnes indésirables on pourrait utiliser un code comme celui-ci :
Range("IV1").End(xlToLeft).Activate Do While ActiveCell.Address <> Range("A1").Address If ActiveCell = "x" Then ActiveCell.EntireColumn.Delete End If ActiveCell.Offset(0, -1).Activate Loop If ActiveCell = "x" Then ActiveCell.EntireColumn.Delete End If
Espérant avoir répondu à tes attentes
Dis moi !!!!
Salut à toi
Pour garder la 1° ligne dans la feuille "Céline"
Je te propose ton code modifié ainsi :
Sub PA_101_copilignes()
Application.ScreenUpdating = False
Sheets("global").Range("A2", "A" &
Range("A2").SpecialCells(xlLastCell).Row).EntireRow.Copy
Sheets("celine").Select
Range("A2").Select
ActiveSheet.Paste
derlig = Range("N6543").End(xlUp).Row
For i = derlig To 2 Step -1
If Cells(i, 18).Value = "Céline" Then
i = i
Else
Cells(i, 18).EntireRow.Delete
End If
Next i
Sheets("céline").Select
Range("A2").Select
Application.ScreenUpdating = True
End Sub
Pour le choix des colonnes l'idéale serait de supprimer celles en trop
aprés recopie
Un repère serait nécessaire
En mettant en ligne 1 un x comme repère aux colonnes indésirables on
pourrait utiliser un code comme celui-ci :
Range("IV1").End(xlToLeft).Activate
Do While ActiveCell.Address <> Range("A1").Address
If ActiveCell = "x" Then
ActiveCell.EntireColumn.Delete
End If
ActiveCell.Offset(0, -1).Activate
Loop
If ActiveCell = "x" Then
ActiveCell.EntireColumn.Delete
End If
Pour garder la 1° ligne dans la feuille "Céline" Je te propose ton code modifié ainsi :
Sub PA_101_copilignes() Application.ScreenUpdating = False Sheets("global").Range("A2", "A" & Range("A2").SpecialCells(xlLastCell).Row).EntireRow.Copy Sheets("celine").Select Range("A2").Select ActiveSheet.Paste derlig = Range("N6543").End(xlUp).Row For i = derlig To 2 Step -1 If Cells(i, 18).Value = "Céline" Then i = i Else Cells(i, 18).EntireRow.Delete End If Next i Sheets("céline").Select Range("A2").Select Application.ScreenUpdating = True End Sub
Pour le choix des colonnes l'idéale serait de supprimer celles en trop aprés recopie Un repère serait nécessaire En mettant en ligne 1 un x comme repère aux colonnes indésirables on pourrait utiliser un code comme celui-ci :
Range("IV1").End(xlToLeft).Activate Do While ActiveCell.Address <> Range("A1").Address If ActiveCell = "x" Then ActiveCell.EntireColumn.Delete End If ActiveCell.Offset(0, -1).Activate Loop If ActiveCell = "x" Then ActiveCell.EntireColumn.Delete End If
Espérant avoir répondu à tes attentes
Dis moi !!!!
LooX718
Merci, je vais tester tout cela !! En tout cas grand merci à vous pour votre aide !
Je suis vraiment admiratif devant vos compétences à tous ici et surtout par rapport à la rapidité à laquelle vous nous aidez !
encore merci... je vous tiens au courant pour vous dire comment cela se passe !
a écrit dans le message de groupe de discussion : Salut à toi
Pour garder la 1° ligne dans la feuille "Céline" Je te propose ton code modifié ainsi :
Sub PA_101_copilignes() Application.ScreenUpdating = False Sheets("global").Range("A2", "A" & Range("A2").SpecialCells(xlLastCell).Row).EntireRow.Copy Sheets("celine").Select Range("A2").Select ActiveSheet.Paste derlig = Range("N6543").End(xlUp).Row For i = derlig To 2 Step -1 If Cells(i, 18).Value = "Céline" Then i = i Else Cells(i, 18).EntireRow.Delete End If Next i Sheets("céline").Select Range("A2").Select Application.ScreenUpdating = True End Sub
Pour le choix des colonnes l'idéale serait de supprimer celles en trop aprés recopie Un repère serait nécessaire En mettant en ligne 1 un x comme repère aux colonnes indésirables on pourrait utiliser un code comme celui-ci :
Range("IV1").End(xlToLeft).Activate Do While ActiveCell.Address <> Range("A1").Address If ActiveCell = "x" Then ActiveCell.EntireColumn.Delete End If ActiveCell.Offset(0, -1).Activate Loop If ActiveCell = "x" Then ActiveCell.EntireColumn.Delete End If
Espérant avoir répondu à tes attentes
Dis moi !!!!
Merci, je vais tester tout cela !!
En tout cas grand merci à vous pour votre aide !
Je suis vraiment admiratif devant vos compétences à tous ici et surtout par
rapport à la rapidité à laquelle vous nous aidez !
encore merci...
je vous tiens au courant pour vous dire comment cela se passe !
<francois.forcet@wanadoo.fr> a écrit dans le message de groupe de discussion
: 95b55fd0-4ed8-4e0f-af7f-1dc4dc5e437d@q10g2000prf.googlegroups.com...
Salut à toi
Pour garder la 1° ligne dans la feuille "Céline"
Je te propose ton code modifié ainsi :
Sub PA_101_copilignes()
Application.ScreenUpdating = False
Sheets("global").Range("A2", "A" &
Range("A2").SpecialCells(xlLastCell).Row).EntireRow.Copy
Sheets("celine").Select
Range("A2").Select
ActiveSheet.Paste
derlig = Range("N6543").End(xlUp).Row
For i = derlig To 2 Step -1
If Cells(i, 18).Value = "Céline" Then
i = i
Else
Cells(i, 18).EntireRow.Delete
End If
Next i
Sheets("céline").Select
Range("A2").Select
Application.ScreenUpdating = True
End Sub
Pour le choix des colonnes l'idéale serait de supprimer celles en trop
aprés recopie
Un repère serait nécessaire
En mettant en ligne 1 un x comme repère aux colonnes indésirables on
pourrait utiliser un code comme celui-ci :
Range("IV1").End(xlToLeft).Activate
Do While ActiveCell.Address <> Range("A1").Address
If ActiveCell = "x" Then
ActiveCell.EntireColumn.Delete
End If
ActiveCell.Offset(0, -1).Activate
Loop
If ActiveCell = "x" Then
ActiveCell.EntireColumn.Delete
End If
Merci, je vais tester tout cela !! En tout cas grand merci à vous pour votre aide !
Je suis vraiment admiratif devant vos compétences à tous ici et surtout par rapport à la rapidité à laquelle vous nous aidez !
encore merci... je vous tiens au courant pour vous dire comment cela se passe !
a écrit dans le message de groupe de discussion : Salut à toi
Pour garder la 1° ligne dans la feuille "Céline" Je te propose ton code modifié ainsi :
Sub PA_101_copilignes() Application.ScreenUpdating = False Sheets("global").Range("A2", "A" & Range("A2").SpecialCells(xlLastCell).Row).EntireRow.Copy Sheets("celine").Select Range("A2").Select ActiveSheet.Paste derlig = Range("N6543").End(xlUp).Row For i = derlig To 2 Step -1 If Cells(i, 18).Value = "Céline" Then i = i Else Cells(i, 18).EntireRow.Delete End If Next i Sheets("céline").Select Range("A2").Select Application.ScreenUpdating = True End Sub
Pour le choix des colonnes l'idéale serait de supprimer celles en trop aprés recopie Un repère serait nécessaire En mettant en ligne 1 un x comme repère aux colonnes indésirables on pourrait utiliser un code comme celui-ci :
Range("IV1").End(xlToLeft).Activate Do While ActiveCell.Address <> Range("A1").Address If ActiveCell = "x" Then ActiveCell.EntireColumn.Delete End If ActiveCell.Offset(0, -1).Activate Loop If ActiveCell = "x" Then ActiveCell.EntireColumn.Delete End If
Espérant avoir répondu à tes attentes
Dis moi !!!!
LooX718
En fait sur la premiere macro j'ai un souci : ma premiere ligne a1 contient les entêtes de colonnes. Je veux que la bascule se fasse dans la feuille céline, à partir de la ligne A2, de manière à me laisser une ligne vide au dessus, quelque soit les données que je bascule.
a écrit dans le message de groupe de discussion : Salut à toi
Pour garder la 1° ligne dans la feuille "Céline" Je te propose ton code modifié ainsi :
Sub PA_101_copilignes() Application.ScreenUpdating = False Sheets("global").Range("A2", "A" & Range("A2").SpecialCells(xlLastCell).Row).EntireRow.Copy Sheets("celine").Select Range("A2").Select ActiveSheet.Paste derlig = Range("N6543").End(xlUp).Row For i = derlig To 2 Step -1 If Cells(i, 18).Value = "Céline" Then i = i Else Cells(i, 18).EntireRow.Delete End If Next i Sheets("céline").Select Range("A2").Select Application.ScreenUpdating = True End Sub
Pour le choix des colonnes l'idéale serait de supprimer celles en trop aprés recopie Un repère serait nécessaire En mettant en ligne 1 un x comme repère aux colonnes indésirables on pourrait utiliser un code comme celui-ci :
Range("IV1").End(xlToLeft).Activate Do While ActiveCell.Address <> Range("A1").Address If ActiveCell = "x" Then ActiveCell.EntireColumn.Delete End If ActiveCell.Offset(0, -1).Activate Loop If ActiveCell = "x" Then ActiveCell.EntireColumn.Delete End If
Espérant avoir répondu à tes attentes
Dis moi !!!!
En fait sur la premiere macro j'ai un souci :
ma premiere ligne a1 contient les entêtes de colonnes. Je veux que la
bascule se fasse dans la feuille céline, à partir de la ligne A2, de manière
à me laisser une ligne vide au dessus, quelque soit les données que je
bascule.
<francois.forcet@wanadoo.fr> a écrit dans le message de groupe de discussion
: 95b55fd0-4ed8-4e0f-af7f-1dc4dc5e437d@q10g2000prf.googlegroups.com...
Salut à toi
Pour garder la 1° ligne dans la feuille "Céline"
Je te propose ton code modifié ainsi :
Sub PA_101_copilignes()
Application.ScreenUpdating = False
Sheets("global").Range("A2", "A" &
Range("A2").SpecialCells(xlLastCell).Row).EntireRow.Copy
Sheets("celine").Select
Range("A2").Select
ActiveSheet.Paste
derlig = Range("N6543").End(xlUp).Row
For i = derlig To 2 Step -1
If Cells(i, 18).Value = "Céline" Then
i = i
Else
Cells(i, 18).EntireRow.Delete
End If
Next i
Sheets("céline").Select
Range("A2").Select
Application.ScreenUpdating = True
End Sub
Pour le choix des colonnes l'idéale serait de supprimer celles en trop
aprés recopie
Un repère serait nécessaire
En mettant en ligne 1 un x comme repère aux colonnes indésirables on
pourrait utiliser un code comme celui-ci :
Range("IV1").End(xlToLeft).Activate
Do While ActiveCell.Address <> Range("A1").Address
If ActiveCell = "x" Then
ActiveCell.EntireColumn.Delete
End If
ActiveCell.Offset(0, -1).Activate
Loop
If ActiveCell = "x" Then
ActiveCell.EntireColumn.Delete
End If
En fait sur la premiere macro j'ai un souci : ma premiere ligne a1 contient les entêtes de colonnes. Je veux que la bascule se fasse dans la feuille céline, à partir de la ligne A2, de manière à me laisser une ligne vide au dessus, quelque soit les données que je bascule.
a écrit dans le message de groupe de discussion : Salut à toi
Pour garder la 1° ligne dans la feuille "Céline" Je te propose ton code modifié ainsi :
Sub PA_101_copilignes() Application.ScreenUpdating = False Sheets("global").Range("A2", "A" & Range("A2").SpecialCells(xlLastCell).Row).EntireRow.Copy Sheets("celine").Select Range("A2").Select ActiveSheet.Paste derlig = Range("N6543").End(xlUp).Row For i = derlig To 2 Step -1 If Cells(i, 18).Value = "Céline" Then i = i Else Cells(i, 18).EntireRow.Delete End If Next i Sheets("céline").Select Range("A2").Select Application.ScreenUpdating = True End Sub
Pour le choix des colonnes l'idéale serait de supprimer celles en trop aprés recopie Un repère serait nécessaire En mettant en ligne 1 un x comme repère aux colonnes indésirables on pourrait utiliser un code comme celui-ci :
Range("IV1").End(xlToLeft).Activate Do While ActiveCell.Address <> Range("A1").Address If ActiveCell = "x" Then ActiveCell.EntireColumn.Delete End If ActiveCell.Offset(0, -1).Activate Loop If ActiveCell = "x" Then ActiveCell.EntireColumn.Delete End If
Espérant avoir répondu à tes attentes
Dis moi !!!!
LooX718
Macro 1 j'ai modifié le For i = derlig to 3 step -1 est cela fonctionne : j'ai bien ma ligne d'entete de colonne qui demarre à A2, mais par contre, cela me copie uniquement la premire la ligne de données... je devrais avoir dans cet exemple environ 70 lignes avec la valeur en colonne18 = céline
"LooX718" a écrit dans le message de groupe de discussion :
En fait sur la premiere macro j'ai un souci : ma premiere ligne a1 contient les entêtes de colonnes. Je veux que la bascule se fasse dans la feuille céline, à partir de la ligne A2, de manière à me laisser une ligne vide au dessus, quelque soit les données que je bascule.
a écrit dans le message de groupe de discussion :
Salut à toi
Pour garder la 1° ligne dans la feuille "Céline" Je te propose ton code modifié ainsi :
Sub PA_101_copilignes() Application.ScreenUpdating = False Sheets("global").Range("A2", "A" & Range("A2").SpecialCells(xlLastCell).Row).EntireRow.Copy Sheets("celine").Select Range("A2").Select ActiveSheet.Paste derlig = Range("N6543").End(xlUp).Row For i = derlig To 2 Step -1 If Cells(i, 18).Value = "Céline" Then i = i Else Cells(i, 18).EntireRow.Delete End If Next i Sheets("céline").Select Range("A2").Select Application.ScreenUpdating = True End Sub
Pour le choix des colonnes l'idéale serait de supprimer celles en trop aprés recopie Un repère serait nécessaire En mettant en ligne 1 un x comme repère aux colonnes indésirables on pourrait utiliser un code comme celui-ci :
Range("IV1").End(xlToLeft).Activate Do While ActiveCell.Address <> Range("A1").Address If ActiveCell = "x" Then ActiveCell.EntireColumn.Delete End If ActiveCell.Offset(0, -1).Activate Loop If ActiveCell = "x" Then ActiveCell.EntireColumn.Delete End If
Espérant avoir répondu à tes attentes
Dis moi !!!!
Macro 1
j'ai modifié le
For i = derlig to 3 step -1 est cela fonctionne : j'ai bien ma ligne
d'entete de colonne qui demarre à A2, mais par contre, cela me copie
uniquement la premire la ligne de données... je devrais avoir dans cet
exemple environ 70 lignes avec la valeur en colonne18 = céline
"LooX718" <flower97l@hotmail.fr> a écrit dans le message de groupe de
discussion : E3B5E909-DD94-46B5-ADCB-51A477FE09A4@microsoft.com...
En fait sur la premiere macro j'ai un souci :
ma premiere ligne a1 contient les entêtes de colonnes. Je veux que la
bascule se fasse dans la feuille céline, à partir de la ligne A2, de
manière à me laisser une ligne vide au dessus, quelque soit les données
que je bascule.
<francois.forcet@wanadoo.fr> a écrit dans le message de groupe de
discussion :
95b55fd0-4ed8-4e0f-af7f-1dc4dc5e437d@q10g2000prf.googlegroups.com...
Salut à toi
Pour garder la 1° ligne dans la feuille "Céline"
Je te propose ton code modifié ainsi :
Sub PA_101_copilignes()
Application.ScreenUpdating = False
Sheets("global").Range("A2", "A" &
Range("A2").SpecialCells(xlLastCell).Row).EntireRow.Copy
Sheets("celine").Select
Range("A2").Select
ActiveSheet.Paste
derlig = Range("N6543").End(xlUp).Row
For i = derlig To 2 Step -1
If Cells(i, 18).Value = "Céline" Then
i = i
Else
Cells(i, 18).EntireRow.Delete
End If
Next i
Sheets("céline").Select
Range("A2").Select
Application.ScreenUpdating = True
End Sub
Pour le choix des colonnes l'idéale serait de supprimer celles en trop
aprés recopie
Un repère serait nécessaire
En mettant en ligne 1 un x comme repère aux colonnes indésirables on
pourrait utiliser un code comme celui-ci :
Range("IV1").End(xlToLeft).Activate
Do While ActiveCell.Address <> Range("A1").Address
If ActiveCell = "x" Then
ActiveCell.EntireColumn.Delete
End If
ActiveCell.Offset(0, -1).Activate
Loop
If ActiveCell = "x" Then
ActiveCell.EntireColumn.Delete
End If
Macro 1 j'ai modifié le For i = derlig to 3 step -1 est cela fonctionne : j'ai bien ma ligne d'entete de colonne qui demarre à A2, mais par contre, cela me copie uniquement la premire la ligne de données... je devrais avoir dans cet exemple environ 70 lignes avec la valeur en colonne18 = céline
"LooX718" a écrit dans le message de groupe de discussion :
En fait sur la premiere macro j'ai un souci : ma premiere ligne a1 contient les entêtes de colonnes. Je veux que la bascule se fasse dans la feuille céline, à partir de la ligne A2, de manière à me laisser une ligne vide au dessus, quelque soit les données que je bascule.
a écrit dans le message de groupe de discussion :
Salut à toi
Pour garder la 1° ligne dans la feuille "Céline" Je te propose ton code modifié ainsi :
Sub PA_101_copilignes() Application.ScreenUpdating = False Sheets("global").Range("A2", "A" & Range("A2").SpecialCells(xlLastCell).Row).EntireRow.Copy Sheets("celine").Select Range("A2").Select ActiveSheet.Paste derlig = Range("N6543").End(xlUp).Row For i = derlig To 2 Step -1 If Cells(i, 18).Value = "Céline" Then i = i Else Cells(i, 18).EntireRow.Delete End If Next i Sheets("céline").Select Range("A2").Select Application.ScreenUpdating = True End Sub
Pour le choix des colonnes l'idéale serait de supprimer celles en trop aprés recopie Un repère serait nécessaire En mettant en ligne 1 un x comme repère aux colonnes indésirables on pourrait utiliser un code comme celui-ci :
Range("IV1").End(xlToLeft).Activate Do While ActiveCell.Address <> Range("A1").Address If ActiveCell = "x" Then ActiveCell.EntireColumn.Delete End If ActiveCell.Offset(0, -1).Activate Loop If ActiveCell = "x" Then ActiveCell.EntireColumn.Delete End If
Espérant avoir répondu à tes attentes
Dis moi !!!!
francois.forcet
Rebonjours à toi J'ai du mal à comprendre ta difficulté Peux tu me transmettre ton fichier en utilisant ce site:
a écrit dans le message de groupe de discussion : Rebonjours à toi J'ai du mal à comprendre ta difficulté Peux tu me transmettre ton fichier en utilisant ce site:
Voici mon fichier test, modifié et allégé pour la démo...
J'arrive pas à faire ce que je veux !! C'est un peu prise de tête !
voici le fichier
http://www.cijoint.fr/cjlink.php?file=cj200804/cijWZrvShk.xls.
<francois.forcet@wanadoo.fr> a écrit dans le message de groupe de discussion
: ae41db0a-ee3c-4400-964f-adcdf6ad4365@z38g2000hsc.googlegroups.com...
Rebonjours à toi
J'ai du mal à comprendre ta difficulté
Peux tu me transmettre ton fichier en utilisant ce site:
a écrit dans le message de groupe de discussion : Rebonjours à toi J'ai du mal à comprendre ta difficulté Peux tu me transmettre ton fichier en utilisant ce site: