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

Extraire données sur la base d'un critère : avec impossibilité d'appliquer filtres Excel, ni requête

2 réponses
Avatar
nathoche
Bonjour,

Apr=E8s avoir planch=E9 plusieurs heures, je n'arrive pas =E0 r=E9soudre mon
probl=E8me que voici :

Je re=E7ois un rapport Excel g=E9n=E9r=E9 automatiquement par un syst=E8me =
sur
le net et dont je n'ai pas le contr=F4le.

Ce rapport liste sur cinq colonnes des informations ainsi que des
calculs. Il y a des milliers de lignes.

Il n'a pas de titre de colonnes, ni de plages de nom. Il y a des
lignes fusionn=E9es (sous-totaux), des lignes blanches entre chaque sous-
section : tout pour emp=EAcher les filtres, tris, requ=EAtes. bref : un
cauchemar !

Ce que je dois faire, c'est pr=E9parer une macro qui permettrait, sans
manipulation =E0 mon directeur, de copier toutes les lignes qui auraient
le crit=E8re "001" ou "002" dans la colonne B, et coller toutes ces
lignes dans une nouvelle feuille, afin de pouvoir ensuite lui
appliquer un calcul dans les colonnes D et E (ce que je pourrais faire
=E0 partir d'un UserForm, je suis =E0 l'aise avec cette partie l=E0.)

Est-ce que quelqu'un pourrait m'aider ou me donner une piste de
solution ?

Par avance, merci !!

2 réponses

Avatar
FFO
Salut Nathoche
En prenant ton rapport dans l'onglet "Source" et la recopie des données dans
l'onglet "Destination
Tu peux essayer cette macro :
Sheets("Destination").Select
Range("A1").Select
A = Sheets("Source").Range("B65535").End(xlUp).Address
For Each c In Worksheets("Source").Range("B1", A)
If c = "001" Or c = "002" Then
c.EntireRow.Copy
ActiveSheet.Paste
ActiveCell.Offset(1, 0).Select
End If
Next

Celà devrait fonctionner avec un doute quand même quant aux cellules
fusionnées
bienque aprés test aucun dysfonctionnement

Dis moi



Bonjour,

Après avoir planché plusieurs heures, je n'arrive pas à résoudre mon
problème que voici :

Je reçois un rapport Excel généré automatiquement par un système sur
le net et dont je n'ai pas le contrôle.

Ce rapport liste sur cinq colonnes des informations ainsi que des
calculs. Il y a des milliers de lignes.

Il n'a pas de titre de colonnes, ni de plages de nom. Il y a des
lignes fusionnées (sous-totaux), des lignes blanches entre chaque sous-
section : tout pour empêcher les filtres, tris, requêtes. bref : un
cauchemar !

Ce que je dois faire, c'est préparer une macro qui permettrait, sans
manipulation à mon directeur, de copier toutes les lignes qui auraient
le critère "001" ou "002" dans la colonne B, et coller toutes ces
lignes dans une nouvelle feuille, afin de pouvoir ensuite lui
appliquer un calcul dans les colonnes D et E (ce que je pourrais faire
à partir d'un UserForm, je suis à l'aise avec cette partie là.)

Est-ce que quelqu'un pourrait m'aider ou me donner une piste de
solution ?

Par avance, merci !!




Avatar
Youky
Salut
remplacer zaza par le nom qui convient au mieux et est le nom de l'onglet
créé
Si cette page existe on n'en créé pas de nouvelle

Application.ScreenUpdating = False
onglet = ActiveSheet.Name
On Error Resume Next
Sheets("zaza").Select
If Err > 0 Then
Sheets.Add
ActiveSheet.Name = "zaza"
End If
Sheets("zaza").Cells.Clear
With Sheets(onglet)
For k = 1 To .[B65536].End(3).Row
If .Cells(k, 2) = "001" Or .Cells(k, 2) = "002" Then
lig = lig + 1
.Rows(k).Copy Sheets("zaza").Rows(lig)
End If
Next
End With
Sheets("zaza").Select
Application.ScreenUpdating = True

"nathoche" a écrit dans le message de news:

Bonjour,

Après avoir planché plusieurs heures, je n'arrive pas à résoudre mon
problème que voici :

Je reçois un rapport Excel généré automatiquement par un système sur
le net et dont je n'ai pas le contrôle.

Ce rapport liste sur cinq colonnes des informations ainsi que des
calculs. Il y a des milliers de lignes.

Il n'a pas de titre de colonnes, ni de plages de nom. Il y a des
lignes fusionnées (sous-totaux), des lignes blanches entre chaque sous-
section : tout pour empêcher les filtres, tris, requêtes. bref : un
cauchemar !

Ce que je dois faire, c'est préparer une macro qui permettrait, sans
manipulation à mon directeur, de copier toutes les lignes qui auraient
le critère "001" ou "002" dans la colonne B, et coller toutes ces
lignes dans une nouvelle feuille, afin de pouvoir ensuite lui
appliquer un calcul dans les colonnes D et E (ce que je pourrais faire
à partir d'un UserForm, je suis à l'aise avec cette partie là.)

Est-ce que quelqu'un pourrait m'aider ou me donner une piste de
solution ?

Par avance, merci !!