Créer une macro sous excel 2010
ppatou83
-
Patrice33740 Messages postés 8930 Statut Membre -
Patrice33740 Messages postés 8930 Statut Membre -
Bonjour,
Je ne maitrise absolument pas Excel.
Afin de me faciliter la tâche, je souhaite créer une macro qui mettra une quantité égale à 1 si la date sous ce format "01/02/2010" correspond.
Je ne sais pas si je suis très clair.
Mais bon on verra bien ....
Merci d'avance
Je ne maitrise absolument pas Excel.
Afin de me faciliter la tâche, je souhaite créer une macro qui mettra une quantité égale à 1 si la date sous ce format "01/02/2010" correspond.
Je ne sais pas si je suis très clair.
Mais bon on verra bien ....
Merci d'avance
A voir également:
- Créer une macro sous excel 2010
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Créer une liste déroulante excel - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Créer une adresse hotmail - Guide
5 réponses
Bonjour
Je ne sais pas si je suis très clair.
loupé!
si la date sous ce format "01/02/2010" correspond.
correspond à quoi ?
Au besoin, mettre le classeur sans données confidentielles en pièce jointe (format XL97-2003) sur
http://cijoint.fr/
et coller le lien proposé dans le message de réponse
Je ne sais pas si je suis très clair.
loupé!
si la date sous ce format "01/02/2010" correspond.
correspond à quoi ?
Au besoin, mettre le classeur sans données confidentielles en pièce jointe (format XL97-2003) sur
http://cijoint.fr/
et coller le lien proposé dans le message de réponse
Cette macro renvoie 1 dans la colonne C si la date de la colonne B est un lundi ou un vendredi
Michel
Sub lundi_vendredi()
Dim fin As Integer
Dim jour_sem as Byte
Dim t_date, t_out
fin = Cells(Rows.Count, 2).End(xlUp).Row
t_date = Application.Transpose(Range("B3:B" & fin))
ReDim t_out(1 To UBound(t_date))
For cptr = 1 To UBound(t_date)
jour_sem = Weekday(t_date(cptr), 1)
If t_date(cptr) > 30000 And (jour_sem = 6 Or jour_sem = 2) Then
t_out(cptr) = 1
End If
Next
Application.ScreenUpdating = False
Range("C3:C" & UBound(t_out)) = Application.Transpose(t_out)
End Sub
Michel
Plutôt que supprimer les lgnes, je pense que l'utilisation d'un filtre automatique suffit.
Voici une proposition à partir de ton fichier :
http://www.cijoint.fr/cjlink.php?file=cj201103/cijB6sCjbg.xlsx
Sers-toi des petits boutons sur la ligne 4 pour choisir ce que tu veux. Tu devrais rapidement comprendre comment ça fonctionne
Les totaux sont en haut de la page (c'est plus pratique).
(Pour ré-afficher toutes les lignes : Données / Trier et Filtrer / Effacer)
Voici une proposition à partir de ton fichier :
http://www.cijoint.fr/cjlink.php?file=cj201103/cijB6sCjbg.xlsx
Sers-toi des petits boutons sur la ligne 4 pour choisir ce que tu veux. Tu devrais rapidement comprendre comment ça fonctionne
Les totaux sont en haut de la page (c'est plus pratique).
(Pour ré-afficher toutes les lignes : Données / Trier et Filtrer / Effacer)
Bonjour,
«la formule qui est dans la colonne D jour, c'est pour afficher le jour en texte? »
En effet, =TEXTE(JOURSEM(C6);"jjjj") permet d'obtenir le jour en texte de la date située en C6
« formules en D1 D2. C'est trop te demander de m'expliquer, ... »
- D'abord en G1, j'ai mis l'adresse de la plage des cellules dans lesquelles je vais faire mes calculs (B5:B5000). J'ai 5000 pour avoir une marge suffisante pour contenir toutes les valeurs (tu peux l'adapter à ton besoin).
- Dans les deux formules j'utilise INDIRECT(G2) pour désigne la plage (B5:B5000) : cela permet d'ajouter et/ou de supprimer des cellules dans cette plage sans qu'Excel ne modifie automatiquement les formules situées en D1 et D2. Sinon Excel adapterait automatiquement l'adresse de la plage et si par exemple on supprimait toutes des lignes, la formule passerait en erreur #REF!.
En D1 =NBVAL(INDIRECT(G1)) sert à compter le nombre de valeurs situées dans la plage dont l'adresse est indiquée en G1, c'est à dire le nombre de valeurs dans la plage B5:B5000
En D2 =SOUS.TOTAL(3;INDIRECT(G1)) sert aussi à compter le nombre de valeurs situées dans la plage dont l'adresse est indiquée en G1, mais la formule ne compte que les valeurs affichées (elle ne compte pas les valeurs masquées par le filtre).
En règle générale, pour obtenir des information sur une formule, il suffit d'appuyer sur fx situé dans la barre des formules pour faire apparaitre l'assistant formules. Lorsque plusieurs formules sont imbriquées (par exemple INDIRECT), sans fermer l'assistant, en cliquant sur le nom de la fonction imbriquée, dans la barre des formules (dans ce cas INDIRECT), on obtient l'assistance pour cette fonction. Si cette assistance n'est pas suffisante, on peut alors cliquer sur le lien Aide sur cette fonction pour obtenir des explications plus détaillées.
«la formule qui est dans la colonne D jour, c'est pour afficher le jour en texte? »
En effet, =TEXTE(JOURSEM(C6);"jjjj") permet d'obtenir le jour en texte de la date située en C6
« formules en D1 D2. C'est trop te demander de m'expliquer, ... »
- D'abord en G1, j'ai mis l'adresse de la plage des cellules dans lesquelles je vais faire mes calculs (B5:B5000). J'ai 5000 pour avoir une marge suffisante pour contenir toutes les valeurs (tu peux l'adapter à ton besoin).
- Dans les deux formules j'utilise INDIRECT(G2) pour désigne la plage (B5:B5000) : cela permet d'ajouter et/ou de supprimer des cellules dans cette plage sans qu'Excel ne modifie automatiquement les formules situées en D1 et D2. Sinon Excel adapterait automatiquement l'adresse de la plage et si par exemple on supprimait toutes des lignes, la formule passerait en erreur #REF!.
En D1 =NBVAL(INDIRECT(G1)) sert à compter le nombre de valeurs situées dans la plage dont l'adresse est indiquée en G1, c'est à dire le nombre de valeurs dans la plage B5:B5000
En D2 =SOUS.TOTAL(3;INDIRECT(G1)) sert aussi à compter le nombre de valeurs situées dans la plage dont l'adresse est indiquée en G1, mais la formule ne compte que les valeurs affichées (elle ne compte pas les valeurs masquées par le filtre).
En règle générale, pour obtenir des information sur une formule, il suffit d'appuyer sur fx situé dans la barre des formules pour faire apparaitre l'assistant formules. Lorsque plusieurs formules sont imbriquées (par exemple INDIRECT), sans fermer l'assistant, en cliquant sur le nom de la fonction imbriquée, dans la barre des formules (dans ce cas INDIRECT), on obtient l'assistance pour cette fonction. Si cette assistance n'est pas suffisante, on peut alors cliquer sur le lien Aide sur cette fonction pour obtenir des explications plus détaillées.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tant pis merci quand même.
c'était un format date, j'ai besoin de mettre une quantité si la date correspond à celle que j'ai sélectionnée.
Et voici le lien.
http://www.cijoint.fr/cjlink.php?file=cj201103/cij4pYppJP.xls
J'espère que c'est correct.
Merci encore
je réitère la question
si la date sous ce format "01/02/2010" correspond.
correspond à quoi ? :