VBA : sélectionner un ligne en fonctions de variable [Résolu]

Signaler
Messages postés
10
Date d'inscription
lundi 2 février 2009
Statut
Membre
Dernière intervention
24 novembre 2009
-
Messages postés
219
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
20 décembre 2010
-
Bonjour,
Je travaille en VBA excel.
Je voudrai selectionner la 1ère ligne d'un tableau excel à partir de la colonne i jusquà la colonne j ,
i et j étant des variables. Je ne vois pas comment il faut faire. Quelqu'un pourrait-il m'aider?
Merci

6 réponses

Messages postés
219
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
20 décembre 2010

Si j'ai bien compris, essaye cela
Sub toto()
    Dim LaPlage As Range
    Dim i As Integer, j As Integer
    i = 1
    j = 5
    ActiveWorkbook.Worksheets("232 Tableau").Select
    Set LaPlage = Range(Cells(1, i), Cells(1, j))
    ActiveWorkbook.Charts.Add
    ActiveChart.SeriesCollection.Add LaPlage
End Sub

CNTJC
Messages postés
10
Date d'inscription
lundi 2 février 2009
Statut
Membre
Dernière intervention
24 novembre 2009

Merci cnt, j'ai un peu modifié ce que tu m'as donnée mais la base viens de toi!!

Je me suis aidé de ce que j'ai pu trouvé sur internet mais bon il y a des morceaux de code que je ne comprend pas (ce que j'ai écris en rouge) mais bon ça fonctionne c'est le principal!!



Dim  axe_x As Range, axe_y As Range, axe_y2 As Range, axe_y3 As Range

 Sheets("Tableau des donnees").Select
 Set axe_x = Worksheets("Tableau des donnees").Range(Cells(1, i), Cells(1, j))
 Set axe_y = Worksheets("Tableau des donnees").Range(Cells(k, i), Cells(k, j))
    
 Charts.Add        'ajoute un graphique
 ActiveChart.ChartType = xlColumnClustered   'Type du graphique (ici histogramme)
 ActiveChart.SetSourceData Source:=Sheets("Tableau des donnees").Range("I23")    '?? mais utile sinon bug
 ActiveChart.SeriesCollection.NewSeries  'Crer une nouvelle série pour le graphique
 'Valeur pour l'axe des x
 ActiveChart.SeriesCollection(1).XValues = "=" & axe_x.Address(True, True, xlR1C1, True)
 'Valeur pour l'axe des y
ActiveChart.SeriesCollection(1).Values = "=" & axe_y.Address(True, True, xlR1C1, True)
 'Légende du graphique "Temps d'ouverture"
 ActiveChart.SeriesCollection(1).Name = "MTBF : " & legende
 'Positionnement du graphique en tant qu'objet dans l'onglet "Graphique"
 ActiveChart.Location Where:=xlLocationAsObject, Name:="Graphique"   'Ajoute le graphique comme étan un objet de la feuille graphique
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut
Si c'est du VBA, c'est pas du .Net --> Catégorie de la question modifiée

La syntaxe classique est
   Range("A1:Z1")Il te suffit donc de recréer la chaine "A1:Z1" avec tes paramètres Col1 "A" et Col2 "Z" :
   Range(Col1 & "1:" & Col2 & "1")

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
219
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
20 décembre 2010

Bonjour

Moi je verrai plutôt ceci:

    For n = i To j
        x = Range(Cells(1, n)).Value
    Next n

Salut
Messages postés
10
Date d'inscription
lundi 2 février 2009
Statut
Membre
Dernière intervention
24 novembre 2009

Merci pour vos réponses mais je n'arrive pas à les mettre en place.
En faite la sélection queje cherche à réaliser doit me servir à créer un graphique. Voici un morceau du code que j'ai récupéré en enregistrant une macro. Ici mes "numéros" de colonne sont fixe (C et N) alors que je souhaiterai qu'ils soient variables. Mes "numéros" de colonnes sont stockés dans deux variables i et j. Le problème c'est que ces variables sont des entiers alors que les "numéros" de colonne sont des lettres, je ne peux donc pas les insérer dans la formule ci dessous.
 ActiveChart.SeriesCollection(1).XValues = Worksheets("232 Tableau").Range("C1:N1")

--> cnt : Le code proposé ne fonctionne pas je pense que c'est parce que x n'est pas déclaré mais je ne sait pas sous quel type la déclarer.
Messages postés
219
Date d'inscription
lundi 21 novembre 2005
Statut
Membre
Dernière intervention
20 décembre 2010

Salut Adri37
Heureux que tu ais trouver du grain à moudre à partir de mon exemple. Il me semble que tu n'as pas d'AIDE sur Visual Basic pour Excel. Je joints quelques infos sur certaines méthodes et arguments que tu as mis en rouge.

SetSourceData
: Définit la plage de données source du graphique.
<title>SetSourceData, méthode</title><style><![CDATA[import url(/Office.css);]]></style><link disabled="" href="/MSOffice.css" type="text/css" rel="stylesheet" />Chart..SetSourceData(Source,
PlotBy)

Source   Argument de type Range obligatoire.
Plage qui contient les données source.

PlotBy   Argument de type Variant facultatif.
Indique la façon dont les données sont tracées. Il peut s'agir de l'une des
constantes XlRowCol suivantes : xlColumns ou xlRows.



Voila c'est tout.

CNTJC