Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sélection multiple en VBA

14 réponses
Avatar
fredau
Bonjour,
Pour déboucher sur un graphique, j'ai un petit tableau de 20 lignes et 2
colonnes avec les valeurs d'abcisses (Texte) dans la 1ère colonne et des
valeurs numériques en ordonnées.
Mon tableau comporte rarement 20 valeurs d'abcisses. Je souhaite que la
macro créant le graphique permette de ne représenter que des valeurs
d'abcisses existantes (S'il n'y a que 5 valeurs, le graphe en histogramme ne
doit comporter que 5 barres, s'il y en a 12 le graphique a 12 barres).
Mon nombre de valeurs est déjà recueilli dans une cellule, ce qui me
permettrait de faire une boucle FOR dans ma macro afin de ne sélectionner que
les cellules contenant des valeurs.
Merci d'avance pour la réponse, qui doit sûrement être évidente mais en
recherchant "extension sélection" sur le site je n'ai pas trouvé ma vie.

10 réponses

1 2
Avatar
Daniel.C
Bonsoir.
Les valeurs d'abscisses sont-elles contiguës, c'est à dire de A1 à A5 si tu
as 5 valeurs ? Dans ce cas, tu peux créer un tableau dynamique et tu n'as
pas besoin de VBA.
Dans l'attente de ta réponse,
Cordialement.
Daniel
"fredau" a écrit dans le message de news:

Bonjour,
Pour déboucher sur un graphique, j'ai un petit tableau de 20 lignes et 2
colonnes avec les valeurs d'abcisses (Texte) dans la 1ère colonne et des
valeurs numériques en ordonnées.
Mon tableau comporte rarement 20 valeurs d'abcisses. Je souhaite que la
macro créant le graphique permette de ne représenter que des valeurs
d'abcisses existantes (S'il n'y a que 5 valeurs, le graphe en histogramme
ne
doit comporter que 5 barres, s'il y en a 12 le graphique a 12 barres).
Mon nombre de valeurs est déjà recueilli dans une cellule, ce qui me
permettrait de faire une boucle FOR dans ma macro afin de ne sélectionner
que
les cellules contenant des valeurs.
Merci d'avance pour la réponse, qui doit sûrement être évidente mais en
recherchant "extension sélection" sur le site je n'ai pas trouvé ma vie.



Avatar
Tatanka
Salut Fredau,

En attendant quelque chose de plus simple,
sélectionne deux colonnes adjacentes
contenant des données et lance cette macro :

Sub Graphe()
Application.ScreenUpdating = False
Dim p() As Range, ici As Range
Dim tableau As Range
Dim NL As Integer, i As Integer
Dim j As Integer, k As Integer
Dim nom As String
Set tableau = Selection
NL = tableau.Rows.Count
ReDim p(1 To NL)
For i = 1 To NL
If Not IsEmpty(tableau(i, 1)) Then
j = j + 1
Set p(j) = tableau(i, 1).Resize(1, 2)
End If
Next i
Set ici = p(1)
For k = 2 To j
Set ici = Union(ici, p(k))
Next k
nom = ActiveSheet.Name
With Charts.Add
.ChartType = xlColumnClustered
.SetSourceData Source:=ici
.Location Where:=xlLocationAsObject, Name:=nom
End With
Application.ScreenUpdating = True
End Sub

Serge













"fredau" a écrit dans le message de news:
Bonjour,
Pour déboucher sur un graphique, j'ai un petit tableau de 20 lignes et 2
colonnes avec les valeurs d'abcisses (Texte) dans la 1ère colonne et des
valeurs numériques en ordonnées.
Mon tableau comporte rarement 20 valeurs d'abcisses. Je souhaite que la
macro créant le graphique permette de ne représenter que des valeurs
d'abcisses existantes (S'il n'y a que 5 valeurs, le graphe en histogramme ne
doit comporter que 5 barres, s'il y en a 12 le graphique a 12 barres).
Mon nombre de valeurs est déjà recueilli dans une cellule, ce qui me
permettrait de faire une boucle FOR dans ma macro afin de ne sélectionner que
les cellules contenant des valeurs.
Merci d'avance pour la réponse, qui doit sûrement être évidente mais en
recherchant "extension sélection" sur le site je n'ai pas trouvé ma vie.



Avatar
fredau
Bonjour Tatanka et merci pour votre réponse qui correspond tout à fait à ce
que j'avais exprimé dans mon message, mais (il y a un mais) j'avais omis dans
ma présentation un élément important qui fait que la macro que vous m'avez
envoyé ne fonctionne pas avec mon tableau (Elle fonctionne parfaitement avec
un tableau que l'on sélectionne) :
Ce tableau est en fait le résultat d'un copiage avec liaison d'un premier
tableau se situant dans une autre feuille ce qui entraîne que si j'ai par
exemple 5 valeurs, les 15 suivantes de mon tableau ont en fait la valeur 0
car dans le 1er tableau ces cellules sont vides; cela fait que le résultat de
votre macro me donne un graphique avec aucune valeur. Mon Pb est donc de ne
sélectionner que les valeurs différentes de 0 (Pour Daniel C que je remercie,
mes valeurs sont toujours contigües; ce sera toujours les x premières lignes
du tableau).
Pour être plus clair, il faudrait que je joigne mon exemple d'applic comme
je le vois sur certaines questions du forum mais je ne sais pas faire et n'ai
pas trouvé la solution dans l'aide, pouvez-vous aussi me renseigner la-dessus.
Je suis un peu gêné de demander autant d'aide, je pense que les passionnés
hyper compétents que vous êtes me le pardonneront.
Bonne journée et encore merci.
--
Programmeur VBA amateur



Salut Fredau,

En attendant quelque chose de plus simple,
sélectionne deux colonnes adjacentes
contenant des données et lance cette macro :

Sub Graphe()
Application.ScreenUpdating = False
Dim p() As Range, ici As Range
Dim tableau As Range
Dim NL As Integer, i As Integer
Dim j As Integer, k As Integer
Dim nom As String
Set tableau = Selection
NL = tableau.Rows.Count
ReDim p(1 To NL)
For i = 1 To NL
If Not IsEmpty(tableau(i, 1)) Then
j = j + 1
Set p(j) = tableau(i, 1).Resize(1, 2)
End If
Next i
Set ici = p(1)
For k = 2 To j
Set ici = Union(ici, p(k))
Next k
nom = ActiveSheet.Name
With Charts.Add
.ChartType = xlColumnClustered
.SetSourceData Source:=ici
.Location Where:=xlLocationAsObject, Name:=nom
End With
Application.ScreenUpdating = True
End Sub

Serge













"fredau" a écrit dans le message de news:
Bonjour,
Pour déboucher sur un graphique, j'ai un petit tableau de 20 lignes et 2
colonnes avec les valeurs d'abcisses (Texte) dans la 1ère colonne et des
valeurs numériques en ordonnées.
Mon tableau comporte rarement 20 valeurs d'abcisses. Je souhaite que la
macro créant le graphique permette de ne représenter que des valeurs
d'abcisses existantes (S'il n'y a que 5 valeurs, le graphe en histogramme ne
doit comporter que 5 barres, s'il y en a 12 le graphique a 12 barres).
Mon nombre de valeurs est déjà recueilli dans une cellule, ce qui me
permettrait de faire une boucle FOR dans ma macro afin de ne sélectionner que
les cellules contenant des valeurs.
Merci d'avance pour la réponse, qui doit sûrement être évidente mais en
recherchant "extension sélection" sur le site je n'ai pas trouvé ma vie.








Avatar
Daniel.C
Bonjour.
Pour mettre un classeur à disposition du forum, suis la procédure suivante :
Tu te connectes sur le site www.cjoint.com
Tu cliques sur "Parcourir" et tu sélectionnes ton fichier.
Clique sur le bouton "Créer le lien Cjoint.
Le site va t'afficher l'adresse générée.Tu la copies et tu la postes ici.
C'est tout.
Daniel
"fredau" a écrit dans le message de news:

Bonjour Tatanka et merci pour votre réponse qui correspond tout à fait à
ce
que j'avais exprimé dans mon message, mais (il y a un mais) j'avais omis
dans
ma présentation un élément important qui fait que la macro que vous m'avez
envoyé ne fonctionne pas avec mon tableau (Elle fonctionne parfaitement
avec
un tableau que l'on sélectionne) :
Ce tableau est en fait le résultat d'un copiage avec liaison d'un premier
tableau se situant dans une autre feuille ce qui entraîne que si j'ai par
exemple 5 valeurs, les 15 suivantes de mon tableau ont en fait la valeur 0
car dans le 1er tableau ces cellules sont vides; cela fait que le résultat
de
votre macro me donne un graphique avec aucune valeur. Mon Pb est donc de
ne
sélectionner que les valeurs différentes de 0 (Pour Daniel C que je
remercie,
mes valeurs sont toujours contigües; ce sera toujours les x premières
lignes
du tableau).
Pour être plus clair, il faudrait que je joigne mon exemple d'applic comme
je le vois sur certaines questions du forum mais je ne sais pas faire et
n'ai
pas trouvé la solution dans l'aide, pouvez-vous aussi me renseigner
la-dessus.
Je suis un peu gêné de demander autant d'aide, je pense que les passionnés
hyper compétents que vous êtes me le pardonneront.
Bonne journée et encore merci.
--
Programmeur VBA amateur



Salut Fredau,

En attendant quelque chose de plus simple,
sélectionne deux colonnes adjacentes
contenant des données et lance cette macro :

Sub Graphe()
Application.ScreenUpdating = False
Dim p() As Range, ici As Range
Dim tableau As Range
Dim NL As Integer, i As Integer
Dim j As Integer, k As Integer
Dim nom As String
Set tableau = Selection
NL = tableau.Rows.Count
ReDim p(1 To NL)
For i = 1 To NL
If Not IsEmpty(tableau(i, 1)) Then
j = j + 1
Set p(j) = tableau(i, 1).Resize(1, 2)
End If
Next i
Set ici = p(1)
For k = 2 To j
Set ici = Union(ici, p(k))
Next k
nom = ActiveSheet.Name
With Charts.Add
.ChartType = xlColumnClustered
.SetSourceData Source:=ici
.Location Where:=xlLocationAsObject, Name:=nom
End With
Application.ScreenUpdating = True
End Sub

Serge













"fredau" a écrit dans le message de
news:
Bonjour,
Pour déboucher sur un graphique, j'ai un petit tableau de 20 lignes et
2
colonnes avec les valeurs d'abcisses (Texte) dans la 1ère colonne et
des
valeurs numériques en ordonnées.
Mon tableau comporte rarement 20 valeurs d'abcisses. Je souhaite que la
macro créant le graphique permette de ne représenter que des valeurs
d'abcisses existantes (S'il n'y a que 5 valeurs, le graphe en
histogramme ne
doit comporter que 5 barres, s'il y en a 12 le graphique a 12 barres).
Mon nombre de valeurs est déjà recueilli dans une cellule, ce qui me
permettrait de faire une boucle FOR dans ma macro afin de ne
sélectionner que
les cellules contenant des valeurs.
Merci d'avance pour la réponse, qui doit sûrement être évidente mais en
recherchant "extension sélection" sur le site je n'ai pas trouvé ma
vie.










Avatar
fredau
Bonjour Daniel.C et merci pour votre aide que je met tout de suite en
application en joignant le fichier que je viens de créer pour illustrer mon
Pb (Mon applic réelle serait trop lourde à envoyer) :
http://cjoint.com/?lpl6ZRTips
--
Programmeur VBA amateur



Bonjour.
Pour mettre un classeur à disposition du forum, suis la procédure suivante :
Tu te connectes sur le site www.cjoint.com
Tu cliques sur "Parcourir" et tu sélectionnes ton fichier.
Clique sur le bouton "Créer le lien Cjoint.
Le site va t'afficher l'adresse générée.Tu la copies et tu la postes ici.
C'est tout.
Daniel
"fredau" a écrit dans le message de news:

Bonjour Tatanka et merci pour votre réponse qui correspond tout à fait à
ce
que j'avais exprimé dans mon message, mais (il y a un mais) j'avais omis
dans
ma présentation un élément important qui fait que la macro que vous m'avez
envoyé ne fonctionne pas avec mon tableau (Elle fonctionne parfaitement
avec
un tableau que l'on sélectionne) :
Ce tableau est en fait le résultat d'un copiage avec liaison d'un premier
tableau se situant dans une autre feuille ce qui entraîne que si j'ai par
exemple 5 valeurs, les 15 suivantes de mon tableau ont en fait la valeur 0
car dans le 1er tableau ces cellules sont vides; cela fait que le résultat
de
votre macro me donne un graphique avec aucune valeur. Mon Pb est donc de
ne
sélectionner que les valeurs différentes de 0 (Pour Daniel C que je
remercie,
mes valeurs sont toujours contigües; ce sera toujours les x premières
lignes
du tableau).
Pour être plus clair, il faudrait que je joigne mon exemple d'applic comme
je le vois sur certaines questions du forum mais je ne sais pas faire et
n'ai
pas trouvé la solution dans l'aide, pouvez-vous aussi me renseigner
la-dessus.
Je suis un peu gêné de demander autant d'aide, je pense que les passionnés
hyper compétents que vous êtes me le pardonneront.
Bonne journée et encore merci.
--
Programmeur VBA amateur



Salut Fredau,

En attendant quelque chose de plus simple,
sélectionne deux colonnes adjacentes
contenant des données et lance cette macro :

Sub Graphe()
Application.ScreenUpdating = False
Dim p() As Range, ici As Range
Dim tableau As Range
Dim NL As Integer, i As Integer
Dim j As Integer, k As Integer
Dim nom As String
Set tableau = Selection
NL = tableau.Rows.Count
ReDim p(1 To NL)
For i = 1 To NL
If Not IsEmpty(tableau(i, 1)) Then
j = j + 1
Set p(j) = tableau(i, 1).Resize(1, 2)
End If
Next i
Set ici = p(1)
For k = 2 To j
Set ici = Union(ici, p(k))
Next k
nom = ActiveSheet.Name
With Charts.Add
.ChartType = xlColumnClustered
.SetSourceData Source:=ici
.Location Where:=xlLocationAsObject, Name:=nom
End With
Application.ScreenUpdating = True
End Sub

Serge













"fredau" a écrit dans le message de
news:
Bonjour,
Pour déboucher sur un graphique, j'ai un petit tableau de 20 lignes et
2
colonnes avec les valeurs d'abcisses (Texte) dans la 1ère colonne et
des
valeurs numériques en ordonnées.
Mon tableau comporte rarement 20 valeurs d'abcisses. Je souhaite que la
macro créant le graphique permette de ne représenter que des valeurs
d'abcisses existantes (S'il n'y a que 5 valeurs, le graphe en
histogramme ne
doit comporter que 5 barres, s'il y en a 12 le graphique a 12 barres).
Mon nombre de valeurs est déjà recueilli dans une cellule, ce qui me
permettrait de faire une boucle FOR dans ma macro afin de ne
sélectionner que
les cellules contenant des valeurs.
Merci d'avance pour la réponse, qui doit sûrement être évidente mais en
recherchant "extension sélection" sur le site je n'ai pas trouvé ma
vie.















Avatar
Daniel.C
Ton lien ne fonctionne pas, réesssaie d'en faire un autre.
Daniel
"fredau" a écrit dans le message de news:

Bonjour Daniel.C et merci pour votre aide que je met tout de suite en
application en joignant le fichier que je viens de créer pour illustrer
mon
Pb (Mon applic réelle serait trop lourde à envoyer) :
http://cjoint.com/?lpl6ZRTips
--
Programmeur VBA amateur



Bonjour.
Pour mettre un classeur à disposition du forum, suis la procédure
suivante :
Tu te connectes sur le site www.cjoint.com
Tu cliques sur "Parcourir" et tu sélectionnes ton fichier.
Clique sur le bouton "Créer le lien Cjoint.
Le site va t'afficher l'adresse générée.Tu la copies et tu la postes ici.
C'est tout.
Daniel
"fredau" a écrit dans le message de
news:

Bonjour Tatanka et merci pour votre réponse qui correspond tout à fait
à
ce
que j'avais exprimé dans mon message, mais (il y a un mais) j'avais
omis
dans
ma présentation un élément important qui fait que la macro que vous
m'avez
envoyé ne fonctionne pas avec mon tableau (Elle fonctionne parfaitement
avec
un tableau que l'on sélectionne) :
Ce tableau est en fait le résultat d'un copiage avec liaison d'un
premier
tableau se situant dans une autre feuille ce qui entraîne que si j'ai
par
exemple 5 valeurs, les 15 suivantes de mon tableau ont en fait la
valeur 0
car dans le 1er tableau ces cellules sont vides; cela fait que le
résultat
de
votre macro me donne un graphique avec aucune valeur. Mon Pb est donc
de
ne
sélectionner que les valeurs différentes de 0 (Pour Daniel C que je
remercie,
mes valeurs sont toujours contigües; ce sera toujours les x premières
lignes
du tableau).
Pour être plus clair, il faudrait que je joigne mon exemple d'applic
comme
je le vois sur certaines questions du forum mais je ne sais pas faire
et
n'ai
pas trouvé la solution dans l'aide, pouvez-vous aussi me renseigner
la-dessus.
Je suis un peu gêné de demander autant d'aide, je pense que les
passionnés
hyper compétents que vous êtes me le pardonneront.
Bonne journée et encore merci.
--
Programmeur VBA amateur



Salut Fredau,

En attendant quelque chose de plus simple,
sélectionne deux colonnes adjacentes
contenant des données et lance cette macro :

Sub Graphe()
Application.ScreenUpdating = False
Dim p() As Range, ici As Range
Dim tableau As Range
Dim NL As Integer, i As Integer
Dim j As Integer, k As Integer
Dim nom As String
Set tableau = Selection
NL = tableau.Rows.Count
ReDim p(1 To NL)
For i = 1 To NL
If Not IsEmpty(tableau(i, 1)) Then
j = j + 1
Set p(j) = tableau(i, 1).Resize(1, 2)
End If
Next i
Set ici = p(1)
For k = 2 To j
Set ici = Union(ici, p(k))
Next k
nom = ActiveSheet.Name
With Charts.Add
.ChartType = xlColumnClustered
.SetSourceData Source:=ici
.Location Where:=xlLocationAsObject, Name:=nom
End With
Application.ScreenUpdating = True
End Sub

Serge













"fredau" a écrit dans le message de
news:
Bonjour,
Pour déboucher sur un graphique, j'ai un petit tableau de 20 lignes
et
2
colonnes avec les valeurs d'abcisses (Texte) dans la 1ère colonne et
des
valeurs numériques en ordonnées.
Mon tableau comporte rarement 20 valeurs d'abcisses. Je souhaite que
la
macro créant le graphique permette de ne représenter que des
valeurs
d'abcisses existantes (S'il n'y a que 5 valeurs, le graphe en
histogramme ne
doit comporter que 5 barres, s'il y en a 12 le graphique a 12
barres).
Mon nombre de valeurs est déjà recueilli dans une cellule, ce qui me
permettrait de faire une boucle FOR dans ma macro afin de ne
sélectionner que
les cellules contenant des valeurs.
Merci d'avance pour la réponse, qui doit sûrement être évidente mais
en
recherchant "extension sélection" sur le site je n'ai pas trouvé ma
vie.

















Avatar
fredau
J'espère que celui-là fonctionne
Merci
http://cjoint.com/?lpojSIokZ4
--
Programmeur VBA amateur



Ton lien ne fonctionne pas, réesssaie d'en faire un autre.
Daniel
"fredau" a écrit dans le message de news:

Bonjour Daniel.C et merci pour votre aide que je met tout de suite en
application en joignant le fichier que je viens de créer pour illustrer
mon
Pb (Mon applic réelle serait trop lourde à envoyer) :
http://cjoint.com/?lpl6ZRTips
--
Programmeur VBA amateur



Bonjour.
Pour mettre un classeur à disposition du forum, suis la procédure
suivante :
Tu te connectes sur le site www.cjoint.com
Tu cliques sur "Parcourir" et tu sélectionnes ton fichier.
Clique sur le bouton "Créer le lien Cjoint.
Le site va t'afficher l'adresse générée.Tu la copies et tu la postes ici.
C'est tout.
Daniel
"fredau" a écrit dans le message de
news:

Bonjour Tatanka et merci pour votre réponse qui correspond tout à fait
à
ce
que j'avais exprimé dans mon message, mais (il y a un mais) j'avais
omis
dans
ma présentation un élément important qui fait que la macro que vous
m'avez
envoyé ne fonctionne pas avec mon tableau (Elle fonctionne parfaitement
avec
un tableau que l'on sélectionne) :
Ce tableau est en fait le résultat d'un copiage avec liaison d'un
premier
tableau se situant dans une autre feuille ce qui entraîne que si j'ai
par
exemple 5 valeurs, les 15 suivantes de mon tableau ont en fait la
valeur 0
car dans le 1er tableau ces cellules sont vides; cela fait que le
résultat
de
votre macro me donne un graphique avec aucune valeur. Mon Pb est donc
de
ne
sélectionner que les valeurs différentes de 0 (Pour Daniel C que je
remercie,
mes valeurs sont toujours contigües; ce sera toujours les x premières
lignes
du tableau).
Pour être plus clair, il faudrait que je joigne mon exemple d'applic
comme
je le vois sur certaines questions du forum mais je ne sais pas faire
et
n'ai
pas trouvé la solution dans l'aide, pouvez-vous aussi me renseigner
la-dessus.
Je suis un peu gêné de demander autant d'aide, je pense que les
passionnés
hyper compétents que vous êtes me le pardonneront.
Bonne journée et encore merci.
--
Programmeur VBA amateur



Salut Fredau,

En attendant quelque chose de plus simple,
sélectionne deux colonnes adjacentes
contenant des données et lance cette macro :

Sub Graphe()
Application.ScreenUpdating = False
Dim p() As Range, ici As Range
Dim tableau As Range
Dim NL As Integer, i As Integer
Dim j As Integer, k As Integer
Dim nom As String
Set tableau = Selection
NL = tableau.Rows.Count
ReDim p(1 To NL)
For i = 1 To NL
If Not IsEmpty(tableau(i, 1)) Then
j = j + 1
Set p(j) = tableau(i, 1).Resize(1, 2)
End If
Next i
Set ici = p(1)
For k = 2 To j
Set ici = Union(ici, p(k))
Next k
nom = ActiveSheet.Name
With Charts.Add
.ChartType = xlColumnClustered
.SetSourceData Source:=ici
.Location Where:=xlLocationAsObject, Name:=nom
End With
Application.ScreenUpdating = True
End Sub

Serge













"fredau" a écrit dans le message de
news:
Bonjour,
Pour déboucher sur un graphique, j'ai un petit tableau de 20 lignes
et
2
colonnes avec les valeurs d'abcisses (Texte) dans la 1ère colonne et
des
valeurs numériques en ordonnées.
Mon tableau comporte rarement 20 valeurs d'abcisses. Je souhaite que
la
macro créant le graphique permette de ne représenter que des
valeurs
d'abcisses existantes (S'il n'y a que 5 valeurs, le graphe en
histogramme ne
doit comporter que 5 barres, s'il y en a 12 le graphique a 12
barres).
Mon nombre de valeurs est déjà recueilli dans une cellule, ce qui me
permettrait de faire une boucle FOR dans ma macro afin de ne
sélectionner que
les cellules contenant des valeurs.
Merci d'avance pour la réponse, qui doit sûrement être évidente mais
en
recherchant "extension sélection" sur le site je n'ai pas trouvé ma
vie.






















Avatar
Tatanka
Salut Fredau,

Sélectionne une feuille dans laquelle tu veux copier
ton tableau de la Feuil1 et lance cette macro.
Est-ce le résultat que tu attendais ?

Sub Graphe()
Application.ScreenUpdating = False
Dim ici As Range
Dim tableau As Range
Dim NL As Integer
Dim nom As String
Worksheets("Feuil1").Range("B11:C30").Copy
ActiveSheet.[b11].Select
ActiveSheet.Paste Link:=True
Set tableau = Selection
NL = tableau.Rows.Count
nom = ActiveSheet.Name
NZ = Application.CountIf(tableau.Columns(1), "=0")
NL = tableau.Rows.Count
Set valeurs = tableau.Resize(NL - NZ)
With Charts.Add
.ChartType = xlColumnClustered
.SetSourceData Source:=valeurs
.Location Where:=xlLocationAsObject, Name:=nom
End With
Application.ScreenUpdating = True
End Sub

Serge


"fredau" a écrit dans le message de news:
J'espère que celui-là fonctionne
Merci
http://cjoint.com/?lpojSIokZ4
--
Programmeur VBA amateur



Ton lien ne fonctionne pas, réesssaie d'en faire un autre.
Daniel
"fredau" a écrit dans le message de news:

Bonjour Daniel.C et merci pour votre aide que je met tout de suite en
application en joignant le fichier que je viens de créer pour illustrer
mon
Pb (Mon applic réelle serait trop lourde à envoyer) :
http://cjoint.com/?lpl6ZRTips
--
Programmeur VBA amateur



Bonjour.
Pour mettre un classeur à disposition du forum, suis la procédure
suivante :
Tu te connectes sur le site www.cjoint.com
Tu cliques sur "Parcourir" et tu sélectionnes ton fichier.
Clique sur le bouton "Créer le lien Cjoint.
Le site va t'afficher l'adresse générée.Tu la copies et tu la postes ici.
C'est tout.
Daniel
"fredau" a écrit dans le message de
news:

Bonjour Tatanka et merci pour votre réponse qui correspond tout à fait
à
ce
que j'avais exprimé dans mon message, mais (il y a un mais) j'avais
omis
dans
ma présentation un élément important qui fait que la macro que vous
m'avez
envoyé ne fonctionne pas avec mon tableau (Elle fonctionne parfaitement
avec
un tableau que l'on sélectionne) :
Ce tableau est en fait le résultat d'un copiage avec liaison d'un
premier
tableau se situant dans une autre feuille ce qui entraîne que si j'ai
par
exemple 5 valeurs, les 15 suivantes de mon tableau ont en fait la
valeur 0
car dans le 1er tableau ces cellules sont vides; cela fait que le
résultat
de
votre macro me donne un graphique avec aucune valeur. Mon Pb est donc
de
ne
sélectionner que les valeurs différentes de 0 (Pour Daniel C que je
remercie,
mes valeurs sont toujours contigües; ce sera toujours les x premières
lignes
du tableau).
Pour être plus clair, il faudrait que je joigne mon exemple d'applic
comme
je le vois sur certaines questions du forum mais je ne sais pas faire
et
n'ai
pas trouvé la solution dans l'aide, pouvez-vous aussi me renseigner
la-dessus.
Je suis un peu gêné de demander autant d'aide, je pense que les
passionnés
hyper compétents que vous êtes me le pardonneront.
Bonne journée et encore merci.
--
Programmeur VBA amateur



Salut Fredau,

En attendant quelque chose de plus simple,
sélectionne deux colonnes adjacentes
contenant des données et lance cette macro :

Sub Graphe()
Application.ScreenUpdating = False
Dim p() As Range, ici As Range
Dim tableau As Range
Dim NL As Integer, i As Integer
Dim j As Integer, k As Integer
Dim nom As String
Set tableau = Selection
NL = tableau.Rows.Count
ReDim p(1 To NL)
For i = 1 To NL
If Not IsEmpty(tableau(i, 1)) Then
j = j + 1
Set p(j) = tableau(i, 1).Resize(1, 2)
End If
Next i
Set ici = p(1)
For k = 2 To j
Set ici = Union(ici, p(k))
Next k
nom = ActiveSheet.Name
With Charts.Add
.ChartType = xlColumnClustered
.SetSourceData Source:=ici
.Location Where:=xlLocationAsObject, Name:=nom
End With
Application.ScreenUpdating = True
End Sub

Serge













"fredau" a écrit dans le message de
news:
Bonjour,
Pour déboucher sur un graphique, j'ai un petit tableau de 20 lignes
et
2
colonnes avec les valeurs d'abcisses (Texte) dans la 1ère colonne et
des
valeurs numériques en ordonnées.
Mon tableau comporte rarement 20 valeurs d'abcisses. Je souhaite que
la
macro créant le graphique permette de ne représenter que des
valeurs
d'abcisses existantes (S'il n'y a que 5 valeurs, le graphe en
histogramme ne
doit comporter que 5 barres, s'il y en a 12 le graphique a 12
barres).
Mon nombre de valeurs est déjà recueilli dans une cellule, ce qui me
permettrait de faire une boucle FOR dans ma macro afin de ne
sélectionner que
les cellules contenant des valeurs.
Merci d'avance pour la réponse, qui doit sûrement être évidente mais
en
recherchant "extension sélection" sur le site je n'ai pas trouvé ma
vie.
























Avatar
Daniel.C
Regarde ton classeur modifié :
http://cjoint.com/?lppjmWoQps
J'ai défini une plage dynamique qui reprend les abscisses (Plage) et une
plage dynamique avec les valeurs (PlageVal)
Regarde dans les noms (Insertion / Nom / Définir) la manière de les définir.
J'ai créé ensuite un graphique normal. Dans Données source onglet Séries,
j'ai indiqué les deux plages.
Ty peux ajouter les données que tu veux. Deux restrictions :
- ne pas laisser de cellule vide dans les données des abscisses.
- ne rien écrire dans la colonne H en dessous des données du graphique.
Daniel
"fredau" a écrit dans le message de news:

J'espère que celui-là fonctionne
Merci
http://cjoint.com/?lpojSIokZ4
--
Programmeur VBA amateur



Ton lien ne fonctionne pas, réesssaie d'en faire un autre.
Daniel
"fredau" a écrit dans le message de
news:

Bonjour Daniel.C et merci pour votre aide que je met tout de suite en
application en joignant le fichier que je viens de créer pour illustrer
mon
Pb (Mon applic réelle serait trop lourde à envoyer) :
http://cjoint.com/?lpl6ZRTips
--
Programmeur VBA amateur



Bonjour.
Pour mettre un classeur à disposition du forum, suis la procédure
suivante :
Tu te connectes sur le site www.cjoint.com
Tu cliques sur "Parcourir" et tu sélectionnes ton fichier.
Clique sur le bouton "Créer le lien Cjoint.
Le site va t'afficher l'adresse générée.Tu la copies et tu la postes
ici.
C'est tout.
Daniel
"fredau" a écrit dans le message de
news:

Bonjour Tatanka et merci pour votre réponse qui correspond tout à
fait
à
ce
que j'avais exprimé dans mon message, mais (il y a un mais) j'avais
omis
dans
ma présentation un élément important qui fait que la macro que vous
m'avez
envoyé ne fonctionne pas avec mon tableau (Elle fonctionne
parfaitement
avec
un tableau que l'on sélectionne) :
Ce tableau est en fait le résultat d'un copiage avec liaison d'un
premier
tableau se situant dans une autre feuille ce qui entraîne que si
j'ai
par
exemple 5 valeurs, les 15 suivantes de mon tableau ont en fait la
valeur 0
car dans le 1er tableau ces cellules sont vides; cela fait que le
résultat
de
votre macro me donne un graphique avec aucune valeur. Mon Pb est
donc
de
ne
sélectionner que les valeurs différentes de 0 (Pour Daniel C que je
remercie,
mes valeurs sont toujours contigües; ce sera toujours les x
premières
lignes
du tableau).
Pour être plus clair, il faudrait que je joigne mon exemple d'applic
comme
je le vois sur certaines questions du forum mais je ne sais pas
faire
et
n'ai
pas trouvé la solution dans l'aide, pouvez-vous aussi me renseigner
la-dessus.
Je suis un peu gêné de demander autant d'aide, je pense que les
passionnés
hyper compétents que vous êtes me le pardonneront.
Bonne journée et encore merci.
--
Programmeur VBA amateur



Salut Fredau,

En attendant quelque chose de plus simple,
sélectionne deux colonnes adjacentes
contenant des données et lance cette macro :

Sub Graphe()
Application.ScreenUpdating = False
Dim p() As Range, ici As Range
Dim tableau As Range
Dim NL As Integer, i As Integer
Dim j As Integer, k As Integer
Dim nom As String
Set tableau = Selection
NL = tableau.Rows.Count
ReDim p(1 To NL)
For i = 1 To NL
If Not IsEmpty(tableau(i, 1)) Then
j = j + 1
Set p(j) = tableau(i, 1).Resize(1, 2)
End If
Next i
Set ici = p(1)
For k = 2 To j
Set ici = Union(ici, p(k))
Next k
nom = ActiveSheet.Name
With Charts.Add
.ChartType = xlColumnClustered
.SetSourceData Source:=ici
.Location Where:=xlLocationAsObject, Name:=nom
End With
Application.ScreenUpdating = True
End Sub

Serge













"fredau" a écrit dans le message
de
news:
Bonjour,
Pour déboucher sur un graphique, j'ai un petit tableau de 20
lignes
et
2
colonnes avec les valeurs d'abcisses (Texte) dans la 1ère colonne
et
des
valeurs numériques en ordonnées.
Mon tableau comporte rarement 20 valeurs d'abcisses. Je souhaite
que
la
macro créant le graphique permette de ne représenter que des
valeurs
d'abcisses existantes (S'il n'y a que 5 valeurs, le graphe en
histogramme ne
doit comporter que 5 barres, s'il y en a 12 le graphique a 12
barres).
Mon nombre de valeurs est déjà recueilli dans une cellule, ce qui
me
permettrait de faire une boucle FOR dans ma macro afin de ne
sélectionner que
les cellules contenant des valeurs.
Merci d'avance pour la réponse, qui doit sûrement être évidente
mais
en
recherchant "extension sélection" sur le site je n'ai pas trouvé
ma
vie.
























Avatar
Tatanka
Petit ménage dans ma macro :

Sub Graphe()
Application.ScreenUpdating = False
Dim nom As String
Dim tableau As Range
Dim NL As Integer, NZ As Integer
Dim valeurs As Range
Worksheets("Feuil1").Range("B11:C30").Copy
ActiveSheet.[B11].Select
ActiveSheet.Paste Link:=True
nom = ActiveSheet.Name
Set tableau = Selection
NL = tableau.Rows.Count
NZ = Application.CountIf(tableau.Columns(1), "=0")
Set valeurs = tableau.Resize(NL - NZ)
With Charts.Add
.ChartType = xlColumnClustered
.SetSourceData Source:=valeurs
.Location Where:=xlLocationAsObject, Name:=nom
End With
Application.ScreenUpdating = True
End Sub

Serge



"Tatanka" a écrit dans le message de news:
Salut Fredau,

Sélectionne une feuille dans laquelle tu veux copier
ton tableau de la Feuil1 et lance cette macro.
Est-ce le résultat que tu attendais ?

Sub Graphe()
Application.ScreenUpdating = False
Dim ici As Range
Dim tableau As Range
Dim NL As Integer
Dim nom As String
Worksheets("Feuil1").Range("B11:C30").Copy
ActiveSheet.[b11].Select
ActiveSheet.Paste Link:=True
Set tableau = Selection
NL = tableau.Rows.Count
nom = ActiveSheet.Name
NZ = Application.CountIf(tableau.Columns(1), "=0")
NL = tableau.Rows.Count
Set valeurs = tableau.Resize(NL - NZ)
With Charts.Add
.ChartType = xlColumnClustered
.SetSourceData Source:=valeurs
.Location Where:=xlLocationAsObject, Name:=nom
End With
Application.ScreenUpdating = True
End Sub

Serge


"fredau" a écrit dans le message de news:
J'espère que celui-là fonctionne
Merci
http://cjoint.com/?lpojSIokZ4
--
Programmeur VBA amateur



Ton lien ne fonctionne pas, réesssaie d'en faire un autre.
Daniel
"fredau" a écrit dans le message de news:

Bonjour Daniel.C et merci pour votre aide que je met tout de suite en
application en joignant le fichier que je viens de créer pour illustrer
mon
Pb (Mon applic réelle serait trop lourde à envoyer) :
http://cjoint.com/?lpl6ZRTips
--
Programmeur VBA amateur



Bonjour.
Pour mettre un classeur à disposition du forum, suis la procédure
suivante :
Tu te connectes sur le site www.cjoint.com
Tu cliques sur "Parcourir" et tu sélectionnes ton fichier.
Clique sur le bouton "Créer le lien Cjoint.
Le site va t'afficher l'adresse générée.Tu la copies et tu la postes ici.
C'est tout.
Daniel
"fredau" a écrit dans le message de
news:

Bonjour Tatanka et merci pour votre réponse qui correspond tout à fait
à
ce
que j'avais exprimé dans mon message, mais (il y a un mais) j'avais
omis
dans
ma présentation un élément important qui fait que la macro que vous
m'avez
envoyé ne fonctionne pas avec mon tableau (Elle fonctionne parfaitement
avec
un tableau que l'on sélectionne) :
Ce tableau est en fait le résultat d'un copiage avec liaison d'un
premier
tableau se situant dans une autre feuille ce qui entraîne que si j'ai
par
exemple 5 valeurs, les 15 suivantes de mon tableau ont en fait la
valeur 0
car dans le 1er tableau ces cellules sont vides; cela fait que le
résultat
de
votre macro me donne un graphique avec aucune valeur. Mon Pb est donc
de
ne
sélectionner que les valeurs différentes de 0 (Pour Daniel C que je
remercie,
mes valeurs sont toujours contigües; ce sera toujours les x premières
lignes
du tableau).
Pour être plus clair, il faudrait que je joigne mon exemple d'applic
comme
je le vois sur certaines questions du forum mais je ne sais pas faire
et
n'ai
pas trouvé la solution dans l'aide, pouvez-vous aussi me renseigner
la-dessus.
Je suis un peu gêné de demander autant d'aide, je pense que les
passionnés
hyper compétents que vous êtes me le pardonneront.
Bonne journée et encore merci.
--
Programmeur VBA amateur



Salut Fredau,

En attendant quelque chose de plus simple,
sélectionne deux colonnes adjacentes
contenant des données et lance cette macro :

Sub Graphe()
Application.ScreenUpdating = False
Dim p() As Range, ici As Range
Dim tableau As Range
Dim NL As Integer, i As Integer
Dim j As Integer, k As Integer
Dim nom As String
Set tableau = Selection
NL = tableau.Rows.Count
ReDim p(1 To NL)
For i = 1 To NL
If Not IsEmpty(tableau(i, 1)) Then
j = j + 1
Set p(j) = tableau(i, 1).Resize(1, 2)
End If
Next i
Set ici = p(1)
For k = 2 To j
Set ici = Union(ici, p(k))
Next k
nom = ActiveSheet.Name
With Charts.Add
.ChartType = xlColumnClustered
.SetSourceData Source:=ici
.Location Where:=xlLocationAsObject, Name:=nom
End With
Application.ScreenUpdating = True
End Sub

Serge













"fredau" a écrit dans le message de
news:
Bonjour,
Pour déboucher sur un graphique, j'ai un petit tableau de 20 lignes
et
2
colonnes avec les valeurs d'abcisses (Texte) dans la 1ère colonne et
des
valeurs numériques en ordonnées.
Mon tableau comporte rarement 20 valeurs d'abcisses. Je souhaite que
la
macro créant le graphique permette de ne représenter que des
valeurs
d'abcisses existantes (S'il n'y a que 5 valeurs, le graphe en
histogramme ne
doit comporter que 5 barres, s'il y en a 12 le graphique a 12
barres).
Mon nombre de valeurs est déjà recueilli dans une cellule, ce qui me
permettrait de faire une boucle FOR dans ma macro afin de ne
sélectionner que
les cellules contenant des valeurs.
Merci d'avance pour la réponse, qui doit sûrement être évidente mais
en
recherchant "extension sélection" sur le site je n'ai pas trouvé ma
vie.




























1 2