Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

extraction de données

  • Initiateur de la discussion Initiateur de la discussion jad73
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jad73

XLDnaute Occasionnel
bonjour
je voudrais faire une macro pour extraire des données suivant un numéro de jour
ex:en B2:R2000 c'est la plage de données
---en colonne A2 le numéro des jours 1 a 31 puis 1 a 28 puis 1 a 31 etc..
Dans une cellule T3 j'inscris le numéro du jour par ex 15 ou un autre jour suivant le besoin des recherche je clique sur le bouton de la macro et les données correspondant a tous les jours 15 s'inscriraient en V2.
Comment faut-il rédiger cette macro
merci
 
Re : extraction de données

Bonsoir Jad, bonsoir le forum,

Je te propose la macro événementielle Change ci-dessous :
Code:
Private Sub Worksheet_Change(ByVal Target As Range) 'à chaque édition dans l'onglet
Dim cel As Range 'déclare la variable cel (CELlule)
Dim dest As Range 'déclare la variable dest (DESTination)
 
If Target.Address <> "$T$3" Then Exit Sub 'si l'édition a lieu ailleurs qu'en T3, sort de la procédure
 
For Each cel In Range("A2:A2000") 'boucle sur toutes les cellules cel de la plage A2:A2000
    If cel.Value = Target.Value Then 'condition 1 : si la cellule cel a la même valeur que la cellule T3
        If Range("V2") = "" Then 'condition 2 : si la cellule V2 est vide
            Set dest = Range("V2") 'définit dest comme étant V2
        Else 'sinon (condition 2)
            'définit dest comme étant la première cellule vide rencontrée dans la colonne V
            Set dest = Range("V65536").End(xlUp).Offset(1, 0)
        End If 'fin de la condition 2
        Range(cel.Offset(0, 1), cel.Offset(0, 17)).Copy dest 'copie et colle  la plage B:R de la celule cel
    End If 'fin de la condition 1
Next cel 'prochaine cellule cel de la boucle
End Sub

à placer dans l'onglet correspondant...
 
Re : extraction de données

bonjour
slt robert, je viens de recopier ton code et j'ai une erreur d'execution 424
la ligne "If Target.Address <> "$T3$ then " est surlignée en jaune.
J'avais oublié de préciser que la plage de donnée etait dans une autre feuille,j'ai donc rajouté a la ligne "For Each....("Prix!A2:R2000"), je pense que ça ne pas de la.
merci
 
Re : extraction de données

Bonsoir Jad, bonsoir le forum,

Je commence à vaoir l'habitude des questions mal posées qui ont évidemment des réponses pas adaptées. La macro est événementielle donc elle n'a pas besoin de bouton. Elle reagit automatiquement. Commençons par revoir ton problème. Dans quel onglet se trouve le déclencheur (T3). La plage elle se trouve dans "Prix" ok... Et pour finir dans quel onglet tu veux extraire les données ?

Donne-nous ces données et nous pourrons te donner un code adapté... Le mieux encore serait un petit fichier exemple mais j'imagine qua ça va te donner trop de travail...
 
Re : extraction de données

bonjour à tous
slt robert,je ne suis pas trés doué en excel je ne savais pas qu'une macro événementielle n'avait pas besoin de bouton.
je viens de rentrer le code dans la feuille ou les données doivent etre extraite(resultSem) ou ce trouve la cellule T3.j'ai donc inscrit un chiffre dans cette cellule(T3) et fait Entrée la j'ai un message "Erreur d'éxécution '1004': La méthode 'Range' de l'objet'_Worksheet' a échoué.
Les données que je vais chercher sont dans la feuille "Prix" dans la plage A2:R2000 et les jours sont dans la colonne V2
La ligne "For Each cel In Range("Prix!A2:R2OOO") est en surbrillance jaune avec une fléche devant

merci
 
Dernière édition:
Re : extraction de données

Bonsoir Jad, bonsoir le forum,

Écoute Jad, tu persistes à ne pas vouloir mettre un fichier en pièce jointe... C'est dommage car dans ton premier post tu me disais que la plage étais B2:R2000 avec les jours dans la colonne A et maintenant tu me dis que la plage est A2:R2000 et les jours dans la colonne V2 (au passage, la colonne V2 ça veut pas dire grand chose...). Tu ne m'as toujours pas dis dans quel onglet tu voulais extraire les données...
Alors je vais juste te donner la syntaxe exacte pour l'onglet mais il y a de forte chances pour que le code ne fonctionne toujours pas...
Code:
Sheets("ton_onglet").Range("ta_plage)
 
Re : extraction de données

bonjour a tous
slt Robert
je m'excuse de mettre mal exprimer et surtout de ne pas avoir lu 2 fois mon post.
Mon fichier n'est pas accepté,il est trop gros mème compréssé.
Mon fichier Source(ou je dois aller chercher les données)est dans la feuille "Prix"
en B2:R2000 avec colonne des jours en V2:V2000
La feuille ou sont inscrites les données(extraite de la feuille "Prix") est la feuille "ResultSem" et elles sont inscrites a partir de la cellule AE2, la cellule ou j'inscris le jour est la cellule T3 de cette mème feuille.
encore mes excuses pour cette perte de temps.
merci
 
Re : extraction de données

Bonsoir Jad, bonsoir le forum,

Voilà Jad, en pièce jointe un fichier exemple avec je pense la macro qui te conviendra. Tu vois, même si ton fichier était si volumineux, rien n'empêche d'en faire un avec quelques données reprenant les caractéristiques de l'original. Au moins tu sauras faire la prochaine fois. Et on ne perdra pas autant de temps...
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
177
  • Résolu(e)
Microsoft 365 DATEDIF
Réponses
11
Affichages
420
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…