Selectionner des lignes en fonction d'un mois extrait d'une date de TextBox

Fermé
cb84 - 28 janv. 2021 à 10:02
 cb84 - 29 janv. 2021 à 17:33
Bonjour aux spécialistes vba et aux autres,

Je suis en train de réaliser un fichier Excel avec VBA et je bute sur la sélection des données sur un mois
Mon fichier liste par date "01/01/2021" des données chiffrées
Cette liste provient d'une autre feuille qui extrait les données journalière via une date dans une textbox, date que je retrouve dans la colonne A
Je veux en utilisant un bouton "mois" récupérer toutes les données du mois concerné, sous le même format, et effacer les autres données précédentes et suivantes.
En fait je coince sur l'extraction du "mois année" qui me permet de comparer et supprimer les lignes indésirables.
J'ai essayé via le like ou le = mais c'est le format qui coince

Je bricole un peu sur vba mais la je bloque !

Je remercie celui qui pourra m'aider

Christian
A voir également:

11 réponses

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
Modifié le 29 janv. 2021 à 07:25
Bonjour,
Vous ne répondez pas a la question:
le format de la cellule est date, personnalisée ou texte.

Pour mettre un point d'arrêt sur le VBA.:
placez le curseur souris sur la bande verticale grise au niveau de la ligne de code
If Cells(i, 1) Like cejour Then 

Lancez votre UF, faites en sorte que le code qui nous intéresse se déroule jusqu'au point d'arrêt.
A ce stade, passez le curseur souris sur
 cejour
et
Cells(i, 1)
pour voir leur contenu. Ainsi vous saurez ce qui coince
1
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
Modifié le 28 janv. 2021 à 10:24
Bonjour,

mais c'est le format qui coince
Difference de formats ou ???
Textebox= texte
Cellule= texte ou date?

Savez-vous mettre un point d'arret au niveau du code?
0
Bonjour,
Merci de votre retour

Je fais référence à une textBox du format date xx/xx/xxxx textbox1
Voici le code de la routine

'sélection les jours du mois concerné
cejour = Format(TextBox1, "mm yyyy")
DerLig = ActiveSheet.Range("A65500").End(xlUp).Row
For i = DerLig To 1 Step -1
If Cells(i, 1) Like cejour Then
Cells(i, 1).EntireRow.Delete
End If
Next i


En fait je cherche à supprimer les dates qui ne correspondent pas au mois sélectionné
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
Modifié le 28 janv. 2021 à 16:48
Re,
Oui, mais au niveau cellule feuille, quel est le format?
Quand vous selectionnez la cellule, qu'est ce qu'il y a dans la barre de formule
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Pour la cellule j'ai le format 00/00/0000 et les données proviennent de la textbox1
0
Bonjour,
Merci de votre réponse, je ne connaissais pas cette possibilité, j'ai appris sur le tas.
Concernant cejour j'ai 05/02/2021 et Cells(i, 1) j'ai 01/2021
Il s'agit de format Date, j'ai essayé en mettant
cejour = Format(TextBox1, "*mm yyyy*") mais la non ca ne marche pas (aucune ligne effacé) et pourtant j'ai des lignes dans ma feuille de janvier et février
Merci de votre retour
Christian
0
Bonjour,
Pour compléter j'ai fait un test en mettant à la place de Like, <> et la il me supprime toute les lignes de ma feuille sauf celle ou j'ai fait un total et qui en A à le format date "mmmm yyyy".
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
Modifié le 29 janv. 2021 à 11:36
Re,
Et c'est ce que vous voulez?

cejour j'ai 05/02/2021 : impossible avec
cejour = Format(TextBox1, "mm yyyy")
ou vous avez change le code et de toute facon c'est forcement du texte: "05/02/2021" pas une date

Pour ceci Cells(i, 1) j'ai 01/2021 qu'en est-t-il?
Pourquoi y a pas de jour?
0
J'ai dans la colonne A une liste de date sous format 00/00/0000
Et je veux qu'il me selectionne toutes les lignes qui correspondent à 00/0000 et qu'il vire les autres, ensuite je fais le total des colonnes pour un mois donné.
En fait je cherche le moyen via une TextBox que j'utilise déja sur d'autres feuilles de sélectionner uniquement les lignes de données du mois qui est indiqué dans la texteBox.
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
29 janv. 2021 à 16:14
Re,

un exemple: test sur moi et annee.
Par contre a adapter en fonction des formats de la Textbox1 et de vos cellules.
Sub test()
    Textbox1 = "05/01/2021"
    With Worksheets("feuil1")
        derlig = .Range("A" & .Rows.Count).End(xlUp).Row
        For i = derlig To 1 Step -1
            If Right(CStr(.Cells(i, 1)), 7) <> Right(Textbox1, 7) Then
                .Cells(i, 1).EntireRow.Delete
            End If
        Next i
    End With
End Sub
0
Wouah
Cela fonctionne parfaitement

J'ai trouvé une solution alternative en passant par une colonne supplémentaire ou je mets "mmmm yyyy" et je suis arrivé a le faire fonctionner mais votre solution est beaucoup plus élégante.
Merci pour tout

Christian
0