Graphique Excel en VBA

Résolu/Fermé
Arsène Wenger - 14 mars 2011 à 17:14
 Arsène Wenger - 15 mars 2011 à 10:47
Bonjour,

je suis sous Office 2007, je souhaiterai savoir comment changer la formule :

ActiveChart.SeriesCollection(6).Values = "='Bilan'!$B$6:$J$6"

en quelque chose que j'ai écrit (qui ne marche pas) et qui ressemblerait un peu à çà :

ActiveChart.SeriesCollection(6).Values = "='Bilan'!$B$6:$" & Range("A1").End(xlToRight).Column & "$6"

...Merci d'avance

A voir également:

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 14/03/2011 à 17:51
bonjour,

col est la traduction en lettre de la dernière colonne utilisée ligne 1
valable jusqu'à colonne Z
Dim col As String * 1 
col = Chr(Range("AA1").End(xlToLeft).Column + 64) 

ActiveChart.SeriesCollection(6).Values = "='Bilan'!$B$6:$" & col & "$6"  

Michel
1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
14 mars 2011 à 17:54
Pour le fun si 2 lettres

Function car_col(num As Integer) As String
Dim serie As Byte
Select Case num
    Case Is = 0
        car_col = "#########"
    Case Is < 27
        car_col = Chr(64 + num)
    Case Else
        serie = Int((num - 26) / 27) + 1
        car_col = Chr(64 + serie) & Chr(64 + num - 26 * serie)
End Select

End Function
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 15/03/2011 à 09:31
re

- en tentant une fonction recursive, je me suis aperçu d'une erreur dans mon code, je l'ai corrigée dans le post 3
- une fonction qui permet de convertir les numéros de colonnes en alpha pour excel ... 2099 au moins !

Function cnumtocalpha(ByVal c As Long) As String  
  If c <= 26 Then  
    If c = 26 Then  
      cnumtocalpha = "Z"  
    Else  
      cnumtocalpha = Chr(64 + c)  
    End If  
  Else  
    If c Mod 26 = 0 Then  
      cnumtocalpha = cnumtocalpha(c \ 26 - 1) & cnumtocalpha(26)  
    Else  
      cnumtocalpha = cnumtocalpha(c \ 26) & cnumtocalpha(c Mod 26)  
    End If  
  End If  
End Function
1
Arsène Wenger
15 mars 2011 à 10:47
Les colonnes utilisées vont de B à J, mais je conserve quand même ce code ^^.
Encore merci
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 15/03/2011 à 09:02
bonjour

et si la colonne dépasse Z une fonction qui transforme le n° de colonne en lettre(s)
Function conum_coalpha(cn As Long) As String
Dim pln As Long, dln As Long
Dim cs As String
  If cn <= 26 Then
    conum_coalpha = Chr(64 + cn)
  Else
    dln = cn Mod 26
    pln = cn \ 26
    If dln = 0 Then
      dln = 26
      pln = pln - 1
    End If
    conum_coalpha = Chr(64 + pln) & Chr(64 + dln)
  End If
End Function


dim col as string 
col = conum_coalpha(Range("A1").End(xlToRight).Column)

puis finir comme comme michel_m

bonne suite
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
14 mars 2011 à 18:27
> michel_m
le temps d'aller chercher ma fonction, tu avais déjà tiré
cordialement
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
14 mars 2011 à 18:32
la stéréo c'est mieux :-)
0
Arsène Wenger
15 mars 2011 à 10:43
Franchement, merci beaucoup à tous les 2 !! j'espère que çà ne vous a pas pris trop de temps, en tout cas vous m'avez rendu un enorme service la ! Je vais pouvoir finaliser mon application.

MERCI ^^
0