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

Storm42 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
Storm42 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -
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. melanie1324 Messages postés 1561 Statut Membre 156
     
    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. Storm42 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
       
      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. ed
     
    salut,

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

    ed
    0
  3. melanie1324 Messages postés 1561 Statut Membre 156
     
    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. Storm42 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
       
      Merci beaucoup, ca selectionne bien les donnees que je veux c'est parfait :).
      0
    2. Storm42 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
       
      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. Storm42 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
       
      Enfin si redimmensionner est trop dur, ouvrir l'image sous windows lorsque l'on clique dessus sous excel est tres bien aussi.
      0
  4. Storm42 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ed
     
    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. Storm42 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
       
      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. Storm42 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
       
      Ok j'ai trouver une solution... creer un forme a laquelle j'applique une macro...
      Mais c'est pas un bouton...
      0
    3. ed
       
      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
  7. Storm42 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
     
    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. ed
       
      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
  8. Storm42 Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
     
    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