[VBA-E] Sélectionner toutes les dates correspondante à un mois choisit

  • Auteur de la discussion c_ffiiffii
  • Date de début

c_ffiiffii

Nouveau membre
Bonjour à tous,
J'ai créer une InputBox me permettant de choisir un mois .
Je bute sur un point : j’aimerai savoir comment je peux faire pour sélectionner toutes les dates comprises dans la sélection (ce tableau gère mes comptes) afin de copier cette sélection dans une autre feuille, qui me permettrait ainsi par la suite de calculer mes montants HT et TVA du mois concerné .

Donc le point où je bute : est cette sélection de dates par rapport au mois choisit !

Je pense à un truc comme : Sélectionner les lignes visible puis copier coller
ou bien une boucle du genre : par rapport à la sélectionde l'ensemble du tableau
Départ de la recherche sur la cellule "A8"
si le mois correspond au mois choisit dans l'inputbox, alors copier cette ligne sur
autre feuille, sinon passer à la cellule "A9"
Ensuite passer à la cellule "A9" avec mêmes opération
Et ainsi de suite jusqu'à la dernière cellule du tableau non vide

Et là je ne sais pas comment faire !

Voici mon début de macro (en principe en faisant F8 dans la macro, les étapes fonctionnent) :

Dim Message As Date, Plage, LaDate
'Insertion d'une boite de message pour choisir le mois
LaDate = InputBox("Saisir le mois recherché", "SAISIE DU MOIS", "mois-aaaa" )
If Not IsDate(LaDate) Then Exit Sub 'vérifie que la saisie est bien une date
'On suppose que la date a été saisie sous une autre forme (ex. juin 06)...
'... mais on cherche juin-06 -> On doit formater la date
Message = CVar(Format(CDate(LaDate), "mmmm-yyyy" )) ' donne "mois-année"
'Sélection du tableau actif
Sheets("Feuil1" ).Select
Range("A7" ).Select
Set tbl = ActiveCell.CurrentRegion
tbl.Offset(6, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Select
'Tri des dates valeurs de la banque en ordre décroissant
Selection.Sort Key1:=Range("A8" ), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Dans l’espoir que quelqu’un puisse me sortir de ce problème .
Bien cordialement.
 

Nova13

Habitué
met les balises (sans les espaces) [code ][/code ]

Code:
LaDate = InputBox("Saisir le mois recherché", "SAISIE DU MOIS", "mois-aaaa" )  
If Not IsDate(LaDate) Then Exit Sub
plutot que de faire un exit sub, affiche un message d'erreur et fait un goto
Code:
vérif:
LaDate = InputBox("Saisir le mois recherché", "SAISIE DU MOIS", "mois-aaaa" )  
If Not IsDate(LaDate) Then
msgbox "Saisissez une date" & chr(10) & "Pas n'importe quoi bordel de dieu!!!"
goto vérif
end if

Pour le reste, dans un 1er temps, détermine ton nombre de ligne totale
Code:
nblign=0
do until range("a1").offset(nblign) = ""
nblign=nblign+1
loop

et dans un 2ème temps compare la valeur de chaque ligne à ta date
Code:
for i=0 to nblign
   if range("a1").offset(i).value= LaDate then // ou "" & LaDate , si c'est pas l'un c'est l'autre
      //pour le copier coller fait avec l'enregistreur, c'est long
      //et oubli pas d'incrémenter ta ligne sur la feuille où tu copie
   end if
next i
 

zeb

Modérateur
met les balises (sans les espaces) [code ][/code ]
> +1

plutot que de faire un exit sub, affiche un message d'erreur et fait un goto
> -1000 :ouch:

Code:
LaDate = InputBox("Saisir le mois recherché", "SAISIE DU MOIS", "mois-aaaa" )   
Do While Not IsDate(LaDate)  
  LaDate = InputBox("Saisissez une date" & chr(10) & _
             "Pas n'importe quoi [CENSURED]!!!" &chr(10) & _
             "Re-Saisir le mois recherché", "SAISIE DU MOIS", "mois-aaaa" )   
Loop
End If
Par pitié, pas de GOTO !
 

c_ffiiffii

Nouveau membre
merci pour vos réponses, je vais essayer !
et vous tiens au courant !
 

batchy

Grand Maître
car c'est un mot clef idiot qui n'exprime pas une idée claire, et qui ne structure pas un code. ce qui fait qu'il est illisible au autre... ou à soit même.

le code qui en utilise trop est appelé ''code spaghetti'' : quand on en prend un bout on ne sait jamais ou l'on peut tomber

ça fait des années que ce mot clef est banni, sauf peut être dans [:casimir59:6]
 

zeb

Modérateur
[:marsien] Merci Batchy, je ne la connaissais pas celle-là. Je la resortirais
 

KangOl

Grand Maître
batchy, avec un nom pareil tu oses dénigrer le goto ?
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 128
Messages
6 717 845
Membres
1 586 373
Dernier membre
https://forum.tomshardwar
Partager cette page
Haut