Copier une formule jusqu'à la fin d'1 tableau

Fermé
Storm42 Messages postés 18 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 18 juin 2012 - 19 mai 2011 à 12:09
Storm42 Messages postés 18 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 18 juin 2012 - 20 mai 2011 à 17:10
Bonjour à tous,

J'ai un petit problème pour faire une macro excel 2007.
Je cherche à copier une formule dans la case C1 dans l'intégralité de la colonne en l'arretant à la fin du tableau.
j'aimerai aussi creer un graphique qui reprenne toutes ces valeurs: une date en A1 et le resultat de la formule en C1 avec une autre courbe dont les données serait dans la colonne B.

J'èspere avoir été clair. Et j'èspere que quelqu'un pourra m'aider.

Je vous remercie d'avance.

Maxime.
A voir également:

7 réponses

melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
19 mai 2011 à 13:03
Bonjour,

pour la macro qui copie la formule :
sub x

i=1
do while cells(i,1) <> "" 'une boucle qui tourne sur la colonne A pour déterminer le nombre d elignes. Si tu as un trou dans la colonne A ca ne marchera pas
i=i+1
loop
cells(1,3).copy
range(cells(1,3),cells(i-1,3)).select
activesheet.paste
cells(1,3).select
loop

end sub

Pour les graphiques, enregistre une macro, fais tes courbes et mets ton code ici.
Je ferais les adaptations qu'il faut.
0
Storm42 Messages postés 18 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 18 juin 2012
19 mai 2011 à 14:31
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = "=""Temperature"""
ActiveChart.SeriesCollection(1).Values = _
"='Sheet1'!$C$1:$C$884,'Sheet1'!$G$1:$G$884,'Sheet1'!$K$1:$K$884"
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Name = "=""Error"""
ActiveChart.SeriesCollection(2).Values = _
"='Sheet1'!$D$1:$D$884,'Sheet1'!$H$1:$H$884,'Sheet1'!$L$1:$L$884"
ActiveWindow.SmallScroll Down:=-3

Ca donne ca, si c'est bien ce que tu me demande.
Et merci enfaite j'y suis arriver pour copier ma formule.
Me manque plus que le graphique qui prend juste les donnees et pas plus loin...
(desole pour les accents et fautes je suis avec un clavier anglais....)
0
salut,

je te conseille d'enregistrer une macro, c'est le plus simple pour ce genre de question.

ed
0
melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
19 mai 2011 à 16:06
bonjour,

essaie avec ca :

i = 2
Do While Cells(i, 1) <> ""
i = i + 1
Loop
i = i - 1
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = "=""Temperature"""
ActiveChart.SeriesCollection(1).Values = _
"='Sheet1'!$C$1:$C$" & i & ",'Sheet1'!$G$1:$G$" & i & ",'Sheet1'!$K$1:$K$" & i
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Name = "=""Error"""
ActiveChart.SeriesCollection(2).Values = _
"='Sheet1'!$D$1:$D$" & i & ",'Sheet1'!$H$1:$H$" & i & ",'Sheet1'!$L$1:$L$" & i
0
Storm42 Messages postés 18 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 18 juin 2012
19 mai 2011 à 16:26
Merci beaucoup, ca selectionne bien les donnees que je veux c'est parfait :).
0
Storm42 Messages postés 18 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 18 juin 2012
19 mai 2011 à 16:30
J'ai juste une autre autre question, meme deux...
Pour mettre un bouton sur la page excel avec le 2007, c'est possible? Car j'ai trouver pour mettre dans la barre des outils rapides mais pas sur la page...
La deuxieme est: peut on redimemtionner une image sur excel en double cliquant dessus... et lui redonner ca forme de base en redouble cliquant dessus.

Merci.

Redesoler pour les accents et fautes, ce clavier anglais m'enerve au plus haut point.
0
Storm42 Messages postés 18 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 18 juin 2012
19 mai 2011 à 16:41
Enfin si redimmensionner est trop dur, ouvrir l'image sous windows lorsque l'on clique dessus sous excel est tres bien aussi.
0
Storm42 Messages postés 18 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 18 juin 2012
19 mai 2011 à 17:15
Bon je suis un peu desesperer, au debut ca marchait et j'ai voulu tout mettre dans une seul macro et j'obtiens 9 courbes differentes au lieu de mes deux que j'avais...

voici le programme:

Range("M2,B:B,C:C,F:F,G:G,J:J,K:K").Select
Range("K1").Activate
Selection.Replace What:="*:", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Range("D1").Select
ActiveCell.FormulaR1C1 = "=ABS(RC[-2])-ABS(RC[-1])"
Range("D1").Select
Selection.Copy
Range("H1").Select
ActiveSheet.Paste
Range("L1").Select
ActiveSheet.Paste



Range("D1").AutoFill Range("D1:D" & Range("C65536").End(xlUp).Row)

Range("H1").AutoFill Range("H1:H" & Range("G65536").End(xlUp).Row)

Range("L1").AutoFill Range("L1:L" & Range("K65536").End(xlUp).Row)



i = 2
Do While Cells(i, 1) <> ""
i = i + 1
Loop
i = i - 1
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = "=""Temperature"""
ActiveChart.SeriesCollection(1).Values = _
"='Sheet1'!$C$1:$C$" & i & ",'Sheet1'!$G$1:$G$" & i & ",'Sheet1'!$K$1:$K$" & i
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Name = "=""Error"""
ActiveChart.SeriesCollection(2).Values = _
"='Sheet1'!$D$1:$D$" & i & ",'Sheet1'!$H$1:$H$" & i & ",'Sheet1'!$L$1:$L$" & i
0

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

Posez votre question
salut,

pour mettre un bouton (auquel tu affectes une macro je suppose) c'est là :
onglet "Développeur" > Insérer > Contrôles de formulaires > Icône en forme de bouton.

pour ce qui est de ta question avec le graphique, peu-être peux tu t'inspirer de ça :

Dim plage As Range
Dim graphique As ChartObject

Set plage = Sheets("Feuil1").Range("A1:H12")
Set graphique = ActiveSheet.ChartObjects.Add(100, 50, 300, 300)

With graphique
.Chart.SetSourceData Source:=plage
.Chart.Axes(xlCategory, xlPrimary).CategoryType = xlCategoryScale
.Chart.ChartType = xlLineMarkers
End With


`Mise en forme de graphique type "x,y" (pas avec un numéro de valeur en abscisses)
For i = 1 To 7
.SeriesCollection(i).XValues = plageT 'là tu définis la plage de tes abscisses
Next
0
Storm42 Messages postés 18 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 18 juin 2012
Modifié par Storm42 le 20/05/2011 à 10:19
C'est dingue quand meme... pour le bouton dans office 2007 impossible de le trouver....
Merci Ed je vais essayer ce que tu m'a donner, mais c'est pour le probleme du dimensionnement ou des 9 courbes? ( si je me trompe pas c'est pour le dimensionnemt....desoler je m'y connais pas assez encore...)
0
Storm42 Messages postés 18 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 18 juin 2012
20 mai 2011 à 10:45
Ok j'ai trouver une solution... creer un forme a laquelle j'applique une macro...
Mais c'est pas un bouton...
0
salut !

afficher l'onglet développeur :

http://office.microsoft.com/...

pour ce qui est du code, il ne s'agit pas de redimensionner mais de faire un graphique de manière simple.

bon courage,
ed
0
Storm42 Messages postés 18 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 18 juin 2012
20 mai 2011 à 10:47
Bonjour,
Bon j'ai tellement de questions...
J'aimerai lorsque l'on clique sur une image inserer dans excen que celui-ci la retrouve et l'ouvre dans windows.
Merci.
0
re,
mets un hyperlien... je crois que c'est le plus simple.

ou alors tu mets un écouteur d'événement lorqu'on clique sur une case et tu lies un lien du type suivant :

Range("A1").Select
ActiveSheet.Pictures.Insert("C:\VBA\test.jpg").Select
Selection.Name = "nom-image"

pour ce qui est de l'événement tu peux utiliser le code suivant avec une condition sur la sélection (appartenance à une cellule par exemple, dans laquelle tu sais que si tu cliques tu fais apparaître l'image):


Private Sub Worksheet_Change(ByVal Target As Range)

'permet de sortir de la procédure si plus d'une cellule est sélectionnée
'(sinon la suite de la macro renvoie un message d'erreur)
If Target.Count > 1 Then Exit Sub

MsgBox "Vous venez de modifier la cellule " & Target.Address & _
" (" & Target.Value & ")"

End Sub
0
Storm42 Messages postés 18 Date d'inscription jeudi 19 mai 2011 Statut Membre Dernière intervention 18 juin 2012
20 mai 2011 à 17:10
Merci bien pour votre aide.
Je suis arriver a faire ce aue je voulai avec votre aide et l'aide d'un gas plus caler dans la boite anglaise ou je suis.
0