Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

conditions sur le mois

O

Olivier

Guest
Bonsoir le forum,

Dans le code suivant , je voudrais faire en sorte que à la place de "detection du mois dans une date" j'entre le code pour que quand j'entre ma date dans combobox2 il detecte le mois et en fonction de ça il donne en textbox1 la valeur de I1 ou H1 .

si quelqu'un peut m'aider , se serait sympa .

Private Sub ComboBox2_Change()

If ComboBox2.Value = "detection du mois dans une date" Then
TextBox1.Value = Range("I1").Value
Else
TextBox1.Value = Range("H1").Value
End If
End Sub

merci à tous
 
H

Hervé

Guest
bonsoir

As tu essayer :

if Month(ComboBox2)= réponse de 1 à 12 then

Par contre, si je peut me permettre un conseil, si tu dois saisir et faire un traitement sur la meme combobox, utilises plutot l'évenement Private Sub ComboBox2_AfterUpdate() qui lancera le traitement dès que la combobox perdra le focus.

Salut
Hervé
 
H

Hervé

Guest
Bonjour

Un exemple en pièce jointe.

Salut
Hervé
 

Pièces jointes

  • Classeur1.zip
    9.4 KB · Affichages: 52
  • Classeur1.zip
    9.4 KB · Affichages: 50
  • Classeur1.zip
    9.4 KB · Affichages: 50
O

Olivier

Guest
Merci Hervé pour ton exemple

en fait , je t'explique le but et je ne sais pas si cela pourrait fonctionner avec mon projet .

j' une liste generale et 12 feuil qui porte le nom des mois , quand j'entre un rendez-vous dans mon usf , il me le place dans ma liste generale et je voudrais que en fonction de la date il me le place en meme temps dans la feuil du mois concerner , voila pourquois il doit detecter le mois .

Je ne sais pas te donner le fichier en pj car je le fait à mon boulot et je suis sur le forum depuis mon domicile .

si tu sais juste me dire si avec l'exemple que tu m'as donner c'est faisable ou pas .

Merci de ton aide Hervé
 
O

Olivier

Guest
Hervé , j'ai essayer et cela fonctionne bien !

je te remercie de ton aide .



Sais tu juste encore me dire quel est le code pour que a l'ouverture de mon fichier , il s'affiche en plein page .


Merci

Olivier
 
H

Hervé

Guest
re

regarde en pièce jointe : une macro pour renvoyer la valeur dans la bonne feuille.

et dans le module thisworkbook 2 macros pour l'affichage plein écran.

Salut
Hervé
 

Pièces jointes

  • Classeur1.zip
    16.7 KB · Affichages: 47
  • Classeur1.zip
    16.7 KB · Affichages: 53
  • Classeur1.zip
    16.7 KB · Affichages: 52
O

Olivier

Guest
Hervé , c'est encore Olivier .

j'ai un probleme avec le code que tu m'as fais . Je l'ai modifier pour l'adapter à mon projet , et il y a un truc que je ne comprend pas .

il envoit bien les données dans les bon mois , mais quand j'entre une nouvelle entrée , il m'efface celle d'avant . ou il me l'ecrase et ne me les met pas a la suite les un les autres .

sais tu me dire pourquois ? As tu une solution pour moi ?

aussi , les donnée doivent etres entrée a partir de ma ligne 6 ( j'ai des lignes vide au dessus ) la modif que j'ai fait est bonne ( &5 + 1) ?

Dim l As Integer
Dim mois As String
'on teste la combobox et la textbox , si ils sont vides on sort de la macro
'ainsi on s'assure que les informations sont bien présentes
If ComboBox1 = "" Or jour.Value = "" Then MsgBox "Merci de compléter les informations": Exit Sub
'on renvoi vers la feuille correspondant au mois de la combobox l'information de la textbox
mois = MonthName(Month(jour.Value))
With Sheets(mois)
l = .Range("a65536").End(xlUp).Row
.Range("A" & 5 + 1) = Textbox1
.Range("B" & 5 + 1) = Combobox1
.Range("C" & 5 + 1) = ComboBox2
.Range("D" & 5 + 1) = Textbox2
.Range("G" & 5 + 1) = Textbox3

End With


Merci Hervé
 
H

Hervé

Guest
re

le numéro de la ligne est donné par la variable l :

.Range("a65536").End(xlUp).Row +1 donne le numéro de la première ligne vide dans la colonne A

Ainsi ton code devrait être : .Range("A" & l) = Textbox1,

si tu veux que les données soit rentrées après la ligne 6 il suffit de tester l

Voici un extrait du code que tu dois avoir :

With Sheets(mois)
'l= première cellule vide de la colonne A
l = .Range("a65536").End(xlUp).Row + 1
If l < 6 Then l = 6
.Range("a" & l) = ComboBox1
.Range("b" & l) = TextBox1
End With

J'ai pas mis le reste du code qui reste inchangé.

Salut
Hervé
 
O

Olivier

Guest
Je ne comprend pas !

Dans la pj que tu m'as fait , cela fonctionne et dans une autre application cela ne va pas !!!

il me mets les donnée sur la premiere ligne et les ecrase a chaque nouvelle entrée .

Je ne comprend pas pourquois ????
 
H

Hervé

Guest
re

tu as bien changé : .Range("A" & 5 + 1)
par : .Range("a" & l)

et rajouter le +1 a la suite de l = .Range("a65536").End(xlUp).Row

sinon met une pièce jointe, je chercherais à comprendre.

Salut
Hervé
 

Discussions similaires

Réponses
5
Affichages
398
Réponses
12
Affichages
648
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…