[VBA] Programmation de graphique et sélection de donnés
Bonjour,
J'ai plusieurs questions.
La première, comment fait-on pour sectionner une cellule et enregistrer la donnée dans une variable.
Pour trouver la valeur de la cellule, j'ai fais :
Cells.Find(What:=Me.Controls("TB_f_" & i).Value, After:=ActiveCell, LookIn:=xlFormulas2, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Cells.FindNext(After:=ActiveCell).ActivateSauf que cela ne marche pas... et je ne vois pas comment faire autrement. J'ai des textbox où l'utilisateur marque les données à chercher, les valeurs sont dans un autre fichier Excel où il y a beaucoup de ligne à traiter.
Deuxièmement j'aimerai pouvoir sauvegarder dans une variable la valeur de la cellule sélectionner.
J'ai essayer de définir une variable et de faire comme suit, mais cela ne fonctionne pas, cela vient peut-être du fait que mon programme de base ne fonctionne pas, mais dans ce cas là est-ce la bonne méthode.
Dim Cellsd as CellFormat
Cellsd = Cells.Find(What:=Me.Controls("TB_f_" & i).Value, After:=ActiveCell, LookIn:=xlFormulas2, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Cells.FindNext(After:=ActiveCell).ActivateTroisièmement une fois les coordonnées de la cellule dans une variable, j'aimerais créer une autre variable qui me permettrait de décaler la sélection de trois colonnes vers la droite.
Pour finir j'aimerais tracer un graphique avec ces donnés. J'ai déjà fais une macro par enregistrement pour tracer un graphique ce qui m'a donné ceci :
ActiveSheet.Shapes.AddChart2(240, xlXYScatter).Select
ActiveChart.SetSourceData Source:=Range("Feuil1!$A$1")
ActiveChart.PlotArea.Select
Application.CutCopyMode = False
Application.CutCopyMode = False
Application.CutCopyMode = False
ActiveChart.FullSeriesCollection(1).XValues = "=Feuil1!$B$8:$B$16"
ActiveChart.FullSeriesCollection(1).Values = "=Feuil1!$D$8:$D$17"Ma question est : est-ce qu'il est possible de changer les coordonnées par des variables.
N'hésitez pas si vous voulez des précisons sur certains points.
Merci par avance pour votre aide.
Hello,
Je ne comprends pas bien l'intérêt de chercher une valeur stockée dans un textbox, chercher cette valeur dans une feuille puis récupérer la valeur de la cellule, forcement c'est la valeur de la textbox ... a moins que je n'ai pas tout suivi ...
Quoi qu'il en soit voici un code qui :
1 cherche une valeur dans une feuille ("Laurine", cette valeur peut-être remplacer par la valeur d'un textbox)
2 si la valeur est trouvée, sélectionne la cellule en question
3 affiche l'adresse
4 récupère la valeur dans une variable
5 affiche la valeur de la variable
6 se décale de 3 colonnes vers la droite
7 affiche l'adresse
8 récupère la valeur de la cellule décalée dans une variable
9 affiche la valeur
Sub Cherche_Laurine()
Dim Cellule_A_Trouver As Range, rgFeuille As Range, Cellule_Decallee As Range
Dim Valeur_Trouve As String
Set rgFeuille = Sheets("Feuil1").UsedRange
Set Cellule_A_Trouver = rgFeuille.Find(What:="Laurine")
If Cellule_A_Trouver Is Nothing Then
MsgBox "J'ai rien trouvé"
Else
Cellule_A_Trouver.Select
MsgBox "Cellule sélectionnée est : " & Cellule_A_Trouver.Address
Valeur_Trouve = Cellule_A_Trouver.Value
MsgBox "Valeur de la cellule sélectionnée est : " & Valeur_Trouve
Set Cellule_Decallee = Cellule_A_Trouver.Offset(, 3)
MsgBox "La nouvelle cellule sélectionnée est : " & Cellule_Decallee.Address
Valeur_Trouve = Cellule_Decallee.Value
MsgBox "Valeur de la cellule sélectionnée est : " & Valeur_Trouve
End If
End SubBonjour,
Merci pour votre aide en effet je me suis mal exprimé en fait l'utilisateur doit rentrer des heures à laquelle il fait des manipulations et le but de la macro et de chercher les adresses de l'information rentrée dans la msg box puis de les incrémenter de 3 colonnes. Je ne sais pas si c'est plus clair et logique.
Merci d'avance
Laurine
As-tu essayé le code que je t'ai proposé ? ( en l'adaptant à ton fichier)
Oui j ai testé et cela fonctionne, j ai juste un problème au niveau du graphique, mais j ai réouvert un sujet pour ce problème