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

source graphique a faire évoluer si source évolue

2 réponses
Avatar
gilles
bonjour à tous,
Hier, 2 brillants dieux VBA m'ont aidé, et la soluce de PAPOU marche nickel,
sauf que .. (faut bien qu'il y ait kekchose!!)
Les données de mon graphique sont prises sur 2 colonnes de 50 cellules ou
les valeurs à retenir sont données par une formule
mon graphique affiche donc 50 etiquettes alors que je n'ai qu'une dizaine de
valeurs qui se complètent progressivement
j'ai don installé une macro evenement qui copie les valeurs des 2 colonnes
mais le graphique continue de penser qu'il y a 50 valeurs, sauf si je SUPP
les cellules vides
Je souhaiterais donc que ma macro ne selectionne que les cellules non vides
avant de les copier, mais là...je butte

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim CellChange As Range
Set CellChange = Range("A2:A50")
If Not Application.Intersect(CellChange, Range(Target.Address)) _
Is Nothing Then
'Call copieNumQu
Range("Q2:R50").Select
Selection.Copy
ActiveWindow.LargeScroll Down:=-1
Range("S2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("P2").Select
End If
End Sub

Si kekun saisit mon charabia et pênse pouvoir faire kekchose pour moi...
Merci d'avance

Gilles
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...

2 réponses

Avatar
papou
Bonjour Gilles
Heu ! ...brilliants dieux VBA tu vas un peu fort !
D'autant plus que dans mon fichier exemple la mise à jour auto ne comportait
pas de macro (il y avait une macro à l'intérieur du classeur mais elle m'a
servi de test pour autre chose)
Tu vas trouver des infos chez Misange pour ce qui concerne les valeurs
nulles ou les valeurs à ne pas prendre en compte dans un graphique, ici :
http://www.excelabo.net/xl/graph.php

Cordialement
Pascal

"gilles" a écrit dans le message de news:

bonjour à tous,
Hier, 2 brillants dieux VBA m'ont aidé, et la soluce de PAPOU marche
nickel,
sauf que .. (faut bien qu'il y ait kekchose!!)
Les données de mon graphique sont prises sur 2 colonnes de 50 cellules ou
les valeurs à retenir sont données par une formule
mon graphique affiche donc 50 etiquettes alors que je n'ai qu'une dizaine
de
valeurs qui se complètent progressivement
j'ai don installé une macro evenement qui copie les valeurs des 2 colonnes
mais le graphique continue de penser qu'il y a 50 valeurs, sauf si je SUPP
les cellules vides
Je souhaiterais donc que ma macro ne selectionne que les cellules non
vides
avant de les copier, mais là...je butte

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim CellChange As Range
Set CellChange = Range("A2:A50")
If Not Application.Intersect(CellChange, Range(Target.Address)) _
Is Nothing Then
'Call copieNumQu
Range("Q2:R50").Select
Selection.Copy
ActiveWindow.LargeScroll Down:=-1
Range("S2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Application.CutCopyMode = False
Range("P2").Select
End If
End Sub

Si kekun saisit mon charabia et pênse pouvoir faire kekchose pour moi...
Merci d'avance

Gilles
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire
aujourd'hui,
mais à chaque jour suffit sa peine...


Avatar
gilles
Bonjour PAPOU
si si , je persiste
quand je vois les solutions que toi (et les autres forumistes) proposent et
qui vous semblent évidentes, moi ça me laisse baba
merci du tuyau
Ci-joint mon code final qui peut surement être plus simple mais bon

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim CellChange As Range
Set CellChange = Range("A2:A50")
If Not Application.Intersect(CellChange, Range(Target.Address)) _
Is Nothing Then
Call copieNumQu
End If
End Sub

Sub copieNumQu()
Dim MaValeur, nbcell
For nbcell = 1 To 50

Range("Q" & nbcell).Select
MaValeur = ActiveCell.Value
If Range("Q" & nbcell).Value <> 0 Then 'ne change rien
Range("Q" & nbcell).Copy
Range("S" & nbcell).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Application.CutCopyMode = False
End If
Range("R" & nbcell).Select
MaValeur = ActiveCell.Value
If Range("R" & nbcell).Value <> 0 Then
Range("R" & nbcell).Copy
Range("T" & nbcell).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse
Application.CutCopyMode = False
End If

Next
Call copieFormuleAqu
Call essai_clear
'Call tri_affaires
Call retourVersA
Range("A1").Select
End Sub

Encore merci et à +
gilles
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...