Recherche dates tableau et copier lign VBA
Résolu
ivain34
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
Iama Messages postés 319 Date d'inscription Statut Membre Dernière intervention -
Iama Messages postés 319 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
D'abord un grand merci à tout ceux qui participent à faire vivre ce site et qui permettent a des debutants comme moi de faire des "merveilles"! :)
J'ai un petit soucis sur VBA et malgré de longues recherches je n'arrive pas a trouver une boucle qui correspond a ce que je veux faire. J'ai un tableau de données, la premiere colonne contient des dates (jj/mm/aaaa). Dans mon userform1 , j'ai deux textbox (1 & 2 qui correspondent à "date de debut", "date de fin") et un bouton rechercher.
Je souhaiterai, en cliquant sur le bouton rechercher, selectionner toutes les dates de la colonne A contenu entre "date debut" et "date fin".
Une fois ces valeurs selectionnées, je souhaiterai copier les lignes entieres correspondantes pour les coller dans une autre feuile.
D'avance merci pour votre aide car je suis dans la panade
En esperant ne pas avoir loupé de protocole a suivre pour un 1er post...
D'abord un grand merci à tout ceux qui participent à faire vivre ce site et qui permettent a des debutants comme moi de faire des "merveilles"! :)
J'ai un petit soucis sur VBA et malgré de longues recherches je n'arrive pas a trouver une boucle qui correspond a ce que je veux faire. J'ai un tableau de données, la premiere colonne contient des dates (jj/mm/aaaa). Dans mon userform1 , j'ai deux textbox (1 & 2 qui correspondent à "date de debut", "date de fin") et un bouton rechercher.
Je souhaiterai, en cliquant sur le bouton rechercher, selectionner toutes les dates de la colonne A contenu entre "date debut" et "date fin".
Une fois ces valeurs selectionnées, je souhaiterai copier les lignes entieres correspondantes pour les coller dans une autre feuile.
D'avance merci pour votre aide car je suis dans la panade
En esperant ne pas avoir loupé de protocole a suivre pour un 1er post...
A voir également:
- Recherche dates tableau et copier lign VBA
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Tableau croisé dynamique - Guide
10 réponses
Sur quoi bloques-tu exactement ?
L'évènement sur le clic ?
La recherche des lignes comprises dans ton intervalle de date ?
La copie de ces lignes ?
L'évènement sur le clic ?
La recherche des lignes comprises dans ton intervalle de date ?
La copie de ces lignes ?
Je bloque sur la recherche et la selection des lignes comprises dans mon intervalles de dates (textbox 1 et 2).
Apres c'est bon.
Apres c'est bon.
En gros je recherche un code du style :
IF valeurs colonne A sont inférieurs à date de fin (textbox2) et supérieurs à date debut (textbox1)
THEN selection des lignes entieres dont les valeurs colonne A correspondent à la condition
IF valeurs colonne A sont inférieurs à date de fin (textbox2) et supérieurs à date debut (textbox1)
THEN selection des lignes entieres dont les valeurs colonne A correspondent à la condition
Quand tu cliques sur le bouton rechercher, que se passe-t-il ?
Tu as des variables qui viennent récupérer les valeurs de tes textbox ?
Parce que logiquement cela devrait être quelque chose dans ce style.
Tu as des variables qui viennent récupérer les valeurs de tes textbox ?
Parce que logiquement cela devrait être quelque chose dans ce style.
DerniereLigne= ActiveSheet.UsedRange.Rows.Count Datedebut = textbox1.value DateFin = Textbox2.value For i = 1 to DerniereLigne if Sheets("Le nom de ta feuille").Cells(i,1) <= DateFin and Sheets("Le nom de ta feuille").Cells(1,1) >= DateDebut Then Worksheets("Le nom de ta feuille").Select Worksheets("Le nom de ta feuille").Rows(i).copy Sheets("Le nom de la feuille cible").Cells(Ligne ou tu copies, colonne).Paste end if Next i
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ok super! grace a ton code que j'ai un peu transformé, j'y suis arrivé!!!! D'avance je m'excuse pour la syntaxe qui va faire surement en hérisser plus d'un :)
Private Sub CommandButton1_Click()
Dim DerniereLigne As Integer
Dim DateDebut As Date
Dim DateFin As Date
Dim Li
DerniereLigne = ActiveSheet.UsedRange.Rows.Count
DateDebut = TextBox1.Value
DateFin = TextBox2.Value
For i = 1 To DerniereLigne
If Sheets("Feuil1").Cells(i, 1) <= DateFin And Sheets("Feuil1").Cells(i, 1) >= DateDebut Then
Worksheets("Feuil1").Select
Worksheets("Feuil1").Rows(i).Copy
Worksheets("feuil2").Activate
Range("A65536").Select
Selection.End(xlUp).Select
Li = Selection.Row + 1
Cells(Li, 1).Activate
ActiveSheet.Paste
End If
Next i
End Sub
Bref ca marche! Des que je lance mon userform1, je peux rentrer ma date debut et fin (textbox 1 et 2). Des que je clique sur mon bouton "rechercher", la macro selectionne les lignes superieures à la date de debut et inférieures a la date de fin. Pour ensuite me copier le tout dans la feuille 2 à la suite les unes des autres.
MERCI Youha d'avoir pris de ton temps pour ...me comprendre... et pour me repondre. :)
Comment peut on poster ma feuille excel pour que cela puisse servir a d'autre?
Private Sub CommandButton1_Click()
Dim DerniereLigne As Integer
Dim DateDebut As Date
Dim DateFin As Date
Dim Li
DerniereLigne = ActiveSheet.UsedRange.Rows.Count
DateDebut = TextBox1.Value
DateFin = TextBox2.Value
For i = 1 To DerniereLigne
If Sheets("Feuil1").Cells(i, 1) <= DateFin And Sheets("Feuil1").Cells(i, 1) >= DateDebut Then
Worksheets("Feuil1").Select
Worksheets("Feuil1").Rows(i).Copy
Worksheets("feuil2").Activate
Range("A65536").Select
Selection.End(xlUp).Select
Li = Selection.Row + 1
Cells(Li, 1).Activate
ActiveSheet.Paste
End If
Next i
End Sub
Bref ca marche! Des que je lance mon userform1, je peux rentrer ma date debut et fin (textbox 1 et 2). Des que je clique sur mon bouton "rechercher", la macro selectionne les lignes superieures à la date de debut et inférieures a la date de fin. Pour ensuite me copier le tout dans la feuille 2 à la suite les unes des autres.
MERCI Youha d'avoir pris de ton temps pour ...me comprendre... et pour me repondre. :)
Comment peut on poster ma feuille excel pour que cela puisse servir a d'autre?
Pour poster ta feuille tu vas sur http://www.cijoint.fr/
N'oublies pas d'enlever toutes données confidentielles :)
Peux tu aussi cliquer sur le lien Résolu en haut a gauche de la page ?
Bonne continuation !
N'oublies pas d'enlever toutes données confidentielles :)
Peux tu aussi cliquer sur le lien Résolu en haut a gauche de la page ?
Bonne continuation !
Bonjour ivain34 et Youha
Pouvez-vous me dire par curiosité quel est le rôle lignes
Range("A65536").Select
Selection.End(xlUp).Select
dans la feuille2 avant la sélection des lignes.
PS: je vais récupérer quelques lignes qui vont m'être utile
Merci
Iama
Pouvez-vous me dire par curiosité quel est le rôle lignes
Range("A65536").Select
Selection.End(xlUp).Select
dans la feuille2 avant la sélection des lignes.
PS: je vais récupérer quelques lignes qui vont m'être utile
Merci
Iama
Salut Lama
Alors tout d'abord attention a mes explications, je ne fonctionne que par mimétisme et testS :).
Ces quelques lignes permettent de selectionner la derniere ligne pleine de la colonne A (A65536).
La suite du programme permet donc de selectionner/coller sur la 1er cellule vide de la colonne a:
"variable"=selection.row+1
Cells("variable", 1). activate
'le 1 est bien sur a mettre a jour en fonction de ta colonne balayé
active.sheet.paste
Ce qui me permet de venir coller à la suite de ma base de données les informations.
Il doit surement y avoir moins lourd ou mieux ... mais cette boucle marche :)
Alors tout d'abord attention a mes explications, je ne fonctionne que par mimétisme et testS :).
Ces quelques lignes permettent de selectionner la derniere ligne pleine de la colonne A (A65536).
La suite du programme permet donc de selectionner/coller sur la 1er cellule vide de la colonne a:
"variable"=selection.row+1
Cells("variable", 1). activate
'le 1 est bien sur a mettre a jour en fonction de ta colonne balayé
active.sheet.paste
Ce qui me permet de venir coller à la suite de ma base de données les informations.
Il doit surement y avoir moins lourd ou mieux ... mais cette boucle marche :)