[Catégorie modifiée VB6 --> VBA] Sélectionner plusieurs cellules variables celon
cs_Sissi123
Messages postés1Date d'inscriptionlundi 9 août 2010StatutMembreDernière intervention 9 août 2010
-
9 août 2010 à 17:03
jordane45
Messages postés38145Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention25 avril 2024
-
25 août 2010 à 14:14
Bonjour,
Je viens de récupérer un code en VBA et étant novice cela se complique un peu pour moi...
Je dispose d'une feuille indiquant un nombre d'heures par tâches(lignes) et par dates : jj/mm/aaaa (colonnes)
Sur une deuxième feuille, l'utilisateur choisi le mois qu'il souhaite voir en synthèse en indiquant la date du premier jour du mois (jj/mm/aaaa).
J'aimerai pouvoir calculer la somme sur le mois sélectionné. Mon problème est que je n'arrive pas à arrêter ma sélection juste pour un seul mois. Je n'arrive qu'à sélectionner l'ensemble...
Le code dont je dispose est :
wsh.Activate
While token2 = False
'SI Mois et année de la feuille1 = feuille2
If Month(wsh.Cells(2, y)) Month(wsb.Cells(2, 4)) And Year(wsb.Cells(2, 4)) Year(wsh.Cells(2, y)) Then
token2 = True
wsh.Cells(1, y).Select
t = ActiveCell.Column
Selection.End(xlToRight).Select
z = ActiveCell.Column
Else
wsh.Cells(1, y).Select
Selection.End(xlToRight).Select
y = ActiveCell.Column + 1
End If
Wend
Merci beaucoup pour toutes pistes :)
A voir également:
[Catégorie modifiée VB6 --> VBA] Sélectionner plusieurs cellules variables celon
jordane45
Messages postés38145Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention25 avril 2024344 25 août 2010 à 14:14
Bonjour,
Pardon pour cette réponse un peu tardive...
Bon.; en admettant que vos données (dates) soient triées dans l'ordre, je propose de parcourir la feuille jusqu'à trouver où se situe la première puis la dernière des dates du mois demandé et enfin de faire la selelction de la plage de cellule.
Pour ce faire, voici le code que je propose:
Sub test()
Dim Mois_demande As Integer
Mois_demande = 8 'exemple pour AOUT
'Initialisation des variables pour les coordonnées
Dim Prem_Ligne As Integer
Prem_Ligne = 0
Dim dernier_Ligne As Integer
dernier_Ligne = 0
'-------------------------------------------------------------
'Dernière ligne de la feuille excel...
Dim DernL As Integer
DernL = 50
'-------------------------------------------------------------
'boucle pour parcourir les lignes (dans la colonne 1)
'recherche pour chaque cellule le Mois
' (dates sous la forme dd/mm/yyyy )
' Indique la premiere ligne et la derniere ligne du mois demandé
For I = 1 To DernL
valeur_cell = Cells(I, 1).Value
Mois = Mid(valeur_cell, 4, 2) * 1
If Mois Mois_demande And Prem_Ligne 0 Then
Prem_Ligne = I
End If
If Mois > Mois_demande Then
Dern_Ligne = I - 1
Exit For
End If
Next
'-------------------------------------------------------------
' Affichage dans la fenêtre d'execution de l'éditeur de macro
Debug.Print "Premiere ligne = " & Prem_Ligne
Debug.Print "Derniere ligne = " & Dern_Ligne
'-------------------------------------------------------------
' Selection de la plage
Range(Cells(Prem_Ligne, 1), Cells(Dern_Ligne, 1)).Select
End Sub
Reste à l'adapter à vos besoins...
Cordialement,
Jordane,
______________________________________________________
Règles du forum à lire avant de poster une question : ICI