Macro vba

Résolu
vba -  
 vba -
Bonjour,

voila je vous joins ce petit bout de programme pour que vous m'expliquer ce qui cloche
en fait le probleme c'est qu'il ne me fait pas le graphique pour la derniere valeur de la colonne
je ne sais pas si je suis claire...

merci!

Dim col, col1, nbf As String

nbf = nb - 1
col = "R1C" & nbf
col1 = "R2C" & nbf

ActiveSheet.ChartObjects("Chart 37").Activate
ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).Formula = _
"=SERIES(Item_per!R2C1,Item_per!R1C2:" & col & ",Item_per!R2C2:" & col1 & ",1)"

ActiveChart.Axes(xlCategory).Select
With ActiveChart.Axes(xlCategory)
.MajorUnit = 21
End With

28 réponses

  • 1
  • 2
  1. cousinhub29 Messages postés 1112 Date d'inscription   Statut Membre Dernière intervention   383
     
    Bonjour,

    Il me semble qu'il manque la première partie de ton code, car dans ce que tu montres, on ne sait pas à quoi correspond nb....

    @ te relire
    0
  2. vba
     
    désolée! et merci

    'compte le nombre de colonne dans item_per
    Dim marca3 As Integer
    Dim nb As Integer
    marca3 = 1
    nb = 1
    Do While (marca3 <> 0)
    var12 = Cells(1, nb).Value

    If var12 = "" Then
    marca3 = 0
    Else
    nb = nb + 1
    End If
    Loop
    0
  3. cousinhub29 Messages postés 1112 Date d'inscription   Statut Membre Dernière intervention   383
     
    Re-,

    Afin de déterminer le nombre de colonnes, tu peux essayer ainsi :

    nb = Range("IV1").End(xlToLeft).Column


    Et dans le restant de ton code, nbf est inutile, utilise nb (si tu retranches 1, il te manquera effectivement la dernière colonne...)

    Bonne journée
    0
  4. vba
     
    merci pour ton aide,j'ai essayé de remplacer par nb mais il me manque toujours le graph de la derniere valeur de la colonne

    merci!
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cousinhub29 Messages postés 1112 Date d'inscription   Statut Membre Dernière intervention   383
     
    Re-,

    Tu as bien un en-tête, dans ta dernière colonne? (ligne 1)

    Essaie avec ce code :

    Dim Col As String, Col1 As String
    Dim Nb As Integer
    
    Nb = Sheets("Item_per").Rows("1:2").Find("*", , , , xlByColumns, xlPrevious).Column
    Col = "R1C" & Nb
    Col1 = "R2C" & Nb
    
    ActiveSheet.ChartObjects("Chart 37").Activate
    ActiveChart.SeriesCollection(1).Select
    ActiveChart.SeriesCollection(1).Formula = _
        "=SERIES(Item_per!R2C1,Item_per!R1C2:" & Col & ",Item_per!R2C2:" & Col1 & ",1)"
    
    ActiveChart.Axes(xlCategory).Select
    With ActiveChart.Axes(xlCategory)
        .MajorUnit = 21
    End With
    


    Bon courage
    0
  7. vba
     
    merci! mais j'ai toujours le meme problème il me manque la derniere valeur de ma colonne

    merci quand meme!
    0
  8. cousinhub29 Messages postés 1112 Date d'inscription   Statut Membre Dernière intervention   383
     
    Re-,

    Euh, as-tu vérifié l'échelle de tes axes? (double-clic sur les axes, onglet "échelle")

    Pour voir
    0
  9. vba
     
    je dois changer quelque chose?
    dans cet onglet le min (08/04/2007)le max (29/03/2009)st cochés et l'unité principale est a 21 la secondaire a 1 l'axe des ordonnées y coupe a (08/04/2007)

    j'ai oublié de dire que j'etais novice et que je "répare" cette macro

    merci!
    0
  10. cousinhub29 Messages postés 1112 Date d'inscription   Statut Membre Dernière intervention   383
     
    Re-,

    Et la date, dans la dernière colonne, est-elle supérieure au 29/03/2010?

    Si oui, modifie la valeur max...

    Nota, les dates sont-elles dans la 1ère ligne?

    Si oui, on peut également modifier la valeur max de l'échelle par ce même code, démarre l'enregistreur de macro lorsque tu fais cette opération
    0
  11. vba
     
    les dates sont bien dans la premiere ligne et la date max est le 29/03/2009
    que dois-je changer?

    désolée et merci!
    0
  12. cousinhub29 Messages postés 1112 Date d'inscription   Statut Membre Dernière intervention   383
     
    Re-,

    Essaie ce code (je n'utilise pas les .Select, comme tu peux le remarquer...)

    Sub code_pour_vba()
    Dim Col As String, Col1 As String
    Dim Nb As Integer
    Dim Cht As Chart
    Dim ValMax As Long
    Set Cht = Sheets("Item_per").ChartObjects("Chart 37").Chart
    ValMax = Application.Max(Rows(1))
    
    Nb = Sheets("Item_per").Rows("1:2").Find("*", , , , xlByColumns, xlPrevious).Column
    Col = "R1C" & Nb
    Col1 = "R2C" & Nb
    With Cht
        With .SeriesCollection(1)
            .Formula = _
                "=SERIES(Item_per!R2C1,Item_per!R1C2:" & Col & ",Item_per!R2C2:" & Col1 & ",1)"
        End With
        With .Axes(xlCategory)
            .MaximumScale = ValMax
            .MajorUnit = 21
        End With
    End With
    End Sub
    


    Uniquement valable, si les dates sont dans la 1ère ligne...

    Bon courage
    0
  13. vba
     
    merci!

    J'ai l'erreur impossible de lire la propriété ChartObjects de la classe worksheet

    ??
    0
  14. cousinhub29 Messages postés 1112 Date d'inscription   Statut Membre Dernière intervention   383
     
    Re-,

    Je te propose de joindre ton fichier, avec des données bidons, mais les vrais dates, en utilisant un de ces sites :

    www.cjoint.fr
    www.cijoint.fr

    colles le lien qu'on te donne dans ta réponse, on va voir ce qu'on peut faire
    0
  15. vba
     
    ce sont des données que je ne peux pas mettre sur internet désolée
    merci pour ton aide en tous cas!
    0
    1. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
       
      Salut le forum

      Excusez mon intrusion

      Épure le fichier des données confidentielles et envoi la structure avec ta macro.

      Pour joindre un fichier, tu crèes un lien à l'aide de
      https://www.cjoint.com/ ou de http://cijoint.fr/ et tu
      recopies le lien dans ton prochain message.

      Mytå
      0
  16. cousinhub29 Messages postés 1112 Date d'inscription   Statut Membre Dernière intervention   383
     
    Re-,

    en relisant, j'ai peut-être mal déterminé l'onglet qui contient le graphique....

    Vérifie le nom de l'onglet (j'ai supposé, sans doute à tort, qu'il était dans l'onglet "Item_per")

    Modifie le nom de l'onglet dans cette ligne :

    Set Cht = Sheets("Item_per").ChartObjects("Chart 37").Chart
    


    Pour voir...
    0
  17. cousinhub29 Messages postés 1112 Date d'inscription   Statut Membre Dernière intervention   383
     
    Re-,

    Euh, Item, ou item (attention à l'orthographe, majuscule, minuscule, espaces avant ou après......)

    Sinon, pour le fichier, juste l'onglet, avec des données bidons, cela suffit....

    Tu fais un clic droit sur l'onglet, "Déplacer", "Dans le classeur : Nouveau Classeur"

    Modifie les données, les noms, etc......

    Enregistre, et si tu peux l'envoyer, ce sera bien plus facile....

    Vérifie également que le graphique s'appelle bien "Chart 37"
    Pour ce faire, démarre l'enregistreur de macro, sélectionne le graphique, et stoppe l'enregistreur...
    Dans VBE, regarde le code généré, et note le nom du graphique

    Bon courage
    0
  18. vba
     
    voila le lien je ne sais pas si cela va vous aider
    merci
    http://www.cijoint.fr/cjlink.php?file=cj201008/cijYBef3B0.xls
    0
  19. cousinhub29 Messages postés 1112 Date d'inscription   Statut Membre Dernière intervention   383
     
    Re-,

    Si tu as effectivement copié l'onglet, je ne vois pas de graphique.....

    Es-tu sûre que le graphique est bien sur cet onglet? (il aurait du apparaître....)

    @ te relire
    0
  20. vba
     
    http://www.cijoint.fr/cjlink.php?file=cj201008/cijlMRGVmr.xls

    désoléé
    0
  • 1
  • 2