Créer une macro sous excel 2010

Fermé
ppatou83 - 25 mars 2011 à 10:35
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 31 mars 2011 à 15:46
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


A voir également:

5 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
25 mars 2011 à 10:51
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
1
Je suis vraiment pas douée pas plus avec internet on dirait!! J'ai cliqué sur déposer mais j'ai pas vu comment mettre le lien
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.
0
Voilà je crois que c'est dans le bon format.
Et voici le lien.
http://www.cijoint.fr/cjlink.php?file=cj201103/cij4pYppJP.xls
J'espère que c'est correct.
Merci encore
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
25 mars 2011 à 11:48
merci pour le classeur

je réitère la question

si la date sous ce format "01/02/2010" correspond.
correspond à quoi ? :
0
Oup's! Je dois mettre une quantité dans la colonne C chaque Lundi et vendredi de toutes les dates présentes dans la colonne B. Là c'est mieux
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 25/03/2011 à 14:10
Cette macro renvoie 1 dans la colonne C si la date de la colonne B est un lundi ou un vendredi

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
1
Merci ça marche. C'est sympa de vous être donné tout ce mal.
Bonne après midi
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
29 mars 2011 à 16:01
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)
1
Bonjour Patrice
Je te remercie pour ton aide, mais je n'arive pas à récupérer le document. J'ai enregistré le fichier zip, mais quand je veux l'ouvrir je n'ai que du texte (en chinois pour moi...).
Peux tu me l'envoyer directement sur mon mail??
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
31 mars 2011 à 11:26
Il s'agit pas d'un fichier zip mais d'un fichier Excel (xlsx).
Clique sur le lien ci-dessus, enregistre le fichier et ouvre-le avec Excel
0
Merci beaucoup, la formule qui est dans la colonne D jour, c'est pour afficher le jour en texte?
C'est toi qui l'a ajouté? J'ai compris le principe de filtrage, mais pas celui des formules en D1 D2.
C'est trop te demander de m'expliquer, pour pouvoir le reproduire sur mes différents documents.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
31 mars 2011 à 15:25
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.
1
Une dernière fois merci encore pour tes explications.
Je vais à présent pouvoir avancer mon travail plus facilement et en espérant ne plus avoir à te déranger à ce sujet.
Bonne fin de journée.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
31 mars 2011 à 15:46
De rien, au plaisir de te relire sur le forum

Patrice
0

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

Posez votre question
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
25 mars 2011 à 14:17
Une simple formule suffit (en C3, à tirer vers le bas):
=(JOURSEM(B3)=2 )+( JOURSEM(B3)=6)
0
ça fonctionne aussi. J'essai de comprendre comment pour faire la même chose avec Mardi et Jeudi mais je n'y arrive pas faut-il prendre le dimanche comme premier jour? Encore un petit coup de main serait le bien venu. !!!
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
25 mars 2011 à 14:47
Dimanche=1, samedi = 7
Pour le mardi seulement :
=(JOURSEM(B3)=3 )+0
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
Modifié par Patrice33740 le 25/03/2011 à 14:54
PS : En France, la semaine commence officiellement le dimanche (contrairement à a norme ISO où c'est le lundi).
0
Je vous prie d'excusez mon ignorance, je vais donc chercher comment faire la formule pour Mardi et jeudi.
Où puis-je trouver des formules de calculs? J'ai souvent besoin d'aide ne sachant pas grand chose sur Ecxel, je suis autodidacte.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
25 mars 2011 à 15:07
Dans la barre des formules, appuyer sur fx / catégorie : tous / choisir une fonction / aide sur cette fonction.
0