Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Extraction de données AVEC certaines colonnes

6 réponses
Avatar
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

6 réponses

Avatar
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 !!!!
Avatar
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 !!!!
Avatar
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 !!!!
Avatar
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 !!!!


Avatar
francois.forcet
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
Avatar
LooX718
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.

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:


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

Communiques moi le lien pour le récupérer