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

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.

7 réponses

  1. 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
    1. 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
  2. salut,

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

    ed
    0
    1. 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
      1. Merci beaucoup, ca selectionne bien les donnees que je veux c'est parfait :).
        0
      2. 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
      3. Enfin si redimmensionner est trop dur, ouvrir l'image sous windows lorsque l'on clique dessus sous excel est tres bien aussi.
        0
    2. 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
      1. 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
        1. 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
        2. Ok j'ai trouver une solution... creer un forme a laquelle j'applique une macro...
          Mais c'est pas un bouton...
          0
        3. 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
      2. 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
        1. 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
      3. 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

        Discussions similaires

        exo pix

        2 réponses