Inserer une valur dans un calendrier via recuperation d'une date [Résolu]

Signaler
-
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour à tous

je vous explique mon soucis ( j'ai cherché mais je n'arrive pas à trouver la solution
je suis sous excel 2007 ou 2010 (cela dépend du pc)

j'ai une feuille de calcul qui regroupe les heures de marche de plusieurs installation sous la forme de tableau
avec en colonne les jour de 1 à 31 ( de la colonne B à la colonne AF) et
avec en ligne les mois de janvier à décembre ( emplacement variant sur la feuille exemple la premiere installation va de la ligne 6 à la ligne 17

je me retrouve avec un tableau de B6 jusqu'à AF17 qui correspond à un an

je dois rentrer dans chaque case le nombre d'heure de fonctionnement ( là c'est toujours simple)

je récupère la date via une textbox ( récupération du jour, moi et année sans soucis)
Je récupère le nombre d'heure via une autre textbox (là aussi c'est bon)

Là où je n'arrive pas. je désire rentrer le nombre d'heure de marche dans la case renseignée par le jour et le mois
c'est un tableau toute simple mais c'est bête à dire mais je sèche pour arriver à la bonne cellule

je pense qu'on peut commencer par référencer une cellule de base de laquelle on partira pour les jours et les mois
mais dois je faire un long code (pour les mois ça va j'en ai 12 mais 31 jours ca fait long) et j'ai du mal à raccourcir les codes car je suis un peu rouillé ( ce n'est plus mon métier principal)
par exemple pour une installation
j'en suis arrivé là

Private Sub btx_go_saisie_hdm_Click()
Dim jour As Byte
Dim mois As Byte
dim anne as byte
dim tbx_hdm_moteur_bd as byte ' j'hésitais à le mettre
Dim placefinal As Integer '(là j'ai un doute de la ncessité)

jour = Day(tbx_hdm)
mois = Month(tbx_hdm)
annee = Year(tbx_hdm)

Sheets("hdm").Activate
Range("a5").Select 'ça correspond à 0,0
placefinal = ActiveCell.Offset(mois, jour).Select ' sélection de la bonne case exemple 16 septembre attention à l'inversion
.Range(placefinal) = tbx_hdm_moteur_bd ' inscription dans la case

'evenement.Hide ' cache le menu evenement
End Sub

c'est l’inscription qui bug. et je pense que le sheet hdm et le range a5.select peuvent être fusionné mais le plus important est l'inscription

merci beaucoup
merci pour votre aide et bon courage pour les autres

3 réponses

J'ai trouvé en utilisant les activecell et le modèle address. Avec mise en place des espions j'ai réussi et ça donne ça

Private Sub btx_go_saisie_hdm_Click()
Dim jour As Byte
Dim mois As Byte
Dim annee As Byte
Dim valeur_date As Date

jour = Day(Tbx_date_hdm)
mois = Month(Tbx_date_hdm)


Sheets("hdm").Activate
Range("a5").Select 'ça correspond à 0,0
testdate = ActiveCell.Offset(mois, jour).Address
ActiveCell.Offset(mois, jour).Activate
Range(testdate) = tbx_hdm_moteur_bd

peut être un ou deux lignes en moins mais bon vu que ça fait plus de 6 ans que j'ai pas remis le nez dedans sauf le week end dernier ou la ce fut mega long. Merci à vous tous car sans ça, ben je n'aurais pas si bien avancé

merci pour votre aide et bon courage pour les uatres
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
Bonjour,
juste un peu de réflexion...
placefinal ne saurait être un integer, mais un objet range
je te laisse re-raisonner, car vraiment trop élémentaire.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
220
ouias ...
ce qui donne le plus bêtement du monde :

sheets("hdm").Range("a5").Offset(mois, jour).value = tbx_hdm_moteur_bd


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ