Extraction de données AVEC certaines colonnes

Le
LooX718
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
francois.forcet
Le #5430641
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
Le #5430581
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 !

:
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
Le #5430571
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.

:
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
Le #5430561
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" 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.

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
Le #5430491
Rebonjours à toi
J'ai du mal à comprendre ta difficulté
Peux tu me transmettre ton fichier en utilisant ce site:


http://www.cijoint.fr/index.php

Communiques moi le lien pour le récupérer
LooX718
Le #5429691
Salut François,

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.

:
Rebonjours à toi
J'ai du mal à comprendre ta difficulté
Peux tu me transmettre ton fichier en utilisant ce site:


http://www.cijoint.fr/index.php

Communiques moi le lien pour le récupérer
Publicité
Poster une réponse
Anonyme