Traduction programme VBA

Bonjour ,voila j'ai un programme vba j'aimerai etant debutante avoir la traduction en francais de chaque instruction svp pour mieux comprendre le programme merci

Private Sub worksheet_change(ByVal target As Range)

On Error Resume Next

For num = 1 To ActiveSheet.ChartObjects.Count

If (target.Column = 3 Or target.Column = 1) And target.Row > 1 And target.Count = 1 And target.Value <> "" Then

ActiveSheet.ChartObjects(num).Activate

ActiveChart.SeriesCollection(1).ApplyDataLabels Type:=xlDataLabelsShowLabel

On Error GoTo 0

For i = 1 To ActiveChart.SeriesCollection(1).Points.Count

ActiveChart.SeriesCollection(1).Points(i).DataLabel.Select

Selection.Interior.ColorIndex = 36

Selection.Font.Size = 9

Selection.Text = ActiveSheet.Cells(i + 1, 1)

ActiveChart.SeriesCollection(1).Points(i).MarkerBackgroundColorIndex = 4

Next i

ActiveSheet.ChartObjects(num).Activate

For i = 1 To ActiveChart.SeriesCollection(1).Points.Count

ActiveChart.SeriesCollection(1).Points(i).MarkerBackgroundColorIndex = _

ActiveSheet.[COULEUR].Offset(0, Cells(i + 1, 3).Value).Interior.ColorIndex

Next i

End If

Next

target.Select

End Sub


est ce qu'il ya quelqun pour m'aider svp jen ai vraiment besoin je n'aime pas utiliser des choses que je ne comprends pas meme si sa fonctionne

A un changement quelconque sur une cellule/plage de cellules

Si erreur, reprendre le programme à la boucle suivante

Pour num = 1 jusqu'au nombre d'objets sur la feuille active

Si la cellule qui a changée est (en colonne 3 OU en colonne 1) ET son numéro de ligne supérieur à 1 ET que ce n'est pas une sélection multiple ET que sa valeur n'est pas nulle alors

activation de l'objet n°num

afficher des étiquettes sur les abscisses/ordonnées? du graphique

pour i = 1 au nombre de points sur l'abscisse/l'ordonnée? du graphique

Sélection de l'étiquette du point i

étiquettes mise en couleur (colorindex = 36)

étiquette de taille de police 9

valeur de l'étiquette = contenue de cellule ligne i + 1 et colonne 1

changement de la couleur du marqueur de donnéeen colorindex = 4

Point suivant (boucle i)

Voilà un début !

merci c deja un bon debut je commence a comprendre ce qu'exeecute mon programme

Private Sub worksheet_change(ByVal target As Range)
'évènement VBA. On rentre dans cette procédure si une cellule ou une plage de cellules est modifiée

On Error Resume Next
'en cas d'erreur dans le programme, on passe à la boucle suivante et on ignore les erreurs survenues

For num = 1 To ActiveSheet.ChartObjects.Count
'pour num = 1 jusqu'au nombre d'éléments de type graphique dans la feuille active
    If (target.Column = 3 Or target.Column = 1) And target.Row > 1 And target.Count = 1 And target.Value <> "" Then
    'si, pour la cellule modifiée, on a :
    '(sa colonne = 3 OU sa colonne = 1) ET sa ligne > 1 ET son nombre de cellules = 1 ET sa valeur non vide ALORS
        ActiveSheet.ChartObjects(num).Activate
        'on active le graphique n°num
        ActiveChart.SeriesCollection(1).ApplyDataLabels Type:=xlDataLabelsShowLabel
        'Pour se graphique et sa première série de données, on affiche les étiquettes de données
        On Error GoTo 0
        'euh pas sûr
        For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
        'pour i = 1 jusqu'au nombre de points du graphique
            ActiveChart.SeriesCollection(1).Points(i).DataLabel.Select
            'on sélectionne l'étiquette de données
            Selection.Interior.ColorIndex = 36
            'on mettre cette étiquette de données en couleur -> couleur 36
            Selection.Font.Size = 9
            'on met la police de l'étiquette en taille 9
            Selection.Text = ActiveSheet.Cells(i + 1, 1)
            'on modifie le texte de l'étiquette, qui prend alors la valeur de la cellule ligne i +1 et colonne 1
            ActiveChart.SeriesCollection(1).Points(i).MarkerBackgroundColorIndex = 4
            'on modifie la couleur du marqueur de donnée (qui est généralement un point, une croix, un cercle etc...)
        Next i
        'fin de notre boucle sur les points du graphique

        ActiveSheet.ChartObjects(num).Activate
        'on réactive le même objet qu'avant ?!!!
        For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
        'on refait la même chose, i = 1 au nombre de points
            ActiveChart.SeriesCollection(1).Points(i).MarkerBackgroundColorIndex = _
            'on reremodifie la couleur du marqueur de donnée, et cette fois, le marqueur de données vaut (suite de la commande à la ligne)
            ActiveSheet.[COULEUR].Offset(0, Cells(i + 1, 3).Value).Interior.ColorIndex
            'la couleur de la fond d'une cellule, mais je ne sais pas à quoi correspond le [COULEUR]
        Next i
        'on passe au point suivant
    End If
    'fin de notre if
Next
'graphe suivant (c'est mal construit !!!)

target.Select
'on finit par resélectionner notre cellule

End Sub
'fin

Ce programme est mal construit:

En effet dedans on a un test qui ne devrait être réalisé qu'une fois, mais au lieu il est réalisé autant de fois qu'il y a de graphiques!

La structure de ton programme devrait être:

If .......... Then
For num = 1 to ....
...
...
...
...
Next num
End If

merci beaucoup mais en fait ce programme cherche à créer une macro me permettant de mettre a jour

un graphique dynamique de type Nuage de Point (l’ordre et le nombre des

points sont variables).

J’ai quatre colonnes : Nom du point / Type du Point ou la classe du point / Valeur X / Valeur Y

avec ce programme dans mon nuage de point il ya :

•Une couleur de point différente selon le type du point ou la classe

•Une étiquette visible uniquement pour chaque point

et que lorsque je change le nombre de la colonne du type de point la couleur se modifie automatiquement dans mon nuage de point

et aussi jai 3graphiques partant du meme tableau qui sexecute automatiquement quand je modifie le tableau

voila pourquoi jai ecrit ce programme

comme je suis debutante je ne vois comment faire autrement

'Ce genre de Macro est prédéfini par Microsoft 'l'intitulé est non modifiable
Private Sub worksheet_change(ByVal target As Range)

'Les erreur de codage sont ignorées
On Error Resume Next
'Pour chacun des graphiques de la feuille
For num = 1 To ActiveSheet.ChartObjects.Count
'Conditions de fonctionnement :
'Si le système détecte un changement sur la colonne 3 ou sur la colonne 1
'et sur la ligne 1 et sur une seule cellule et que la cellule modifiée est non vide...
'Nota : A mon avis les conditions me semblent un peu "maladroite"
'Je suis sceptique sur le bon fonctionnement de cette macro
'C'est sans doute pourquoi la gestion des erreurs de codage a été désactivée
If (target.Column = 3 Or target.Column = 1) And target.Row > 1 And target.Count = 1 And target.Value <> "" Then
 'On active le/les graphiques
 ActiveSheet.ChartObjects(num).Activate
 'On affiche les légendes
 ActiveChart.SeriesCollection(1).ApplyDataLabels Type:=xlDataLabelsShowLabel
 'On réactive la gestion d'erreur...
 On Error GoTo 0
 'Pour chaque série de poins
 For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
 ActiveChart.SeriesCollection(1).Points(i).DataLabel.Select
 'On détermine les couleurs, la légende, la couleur de fond
 Selection.Interior.ColorIndex = 36 '36=jaune clair
 Selection.Font.Size = 9 '9= marron
 Selection.Text = ActiveSheet.Cells(i + 1, 1)
 ActiveChart.SeriesCollection(1).Points(i).MarkerBackgroundColorIndex = 4 '4 = vert
 Next i

 ActiveSheet.ChartObjects(num).Activate
 For i = 1 To ActiveChart.SeriesCollection(1).Points.Count
 'On modifie la couleur verte définie précédemment pour une couleur définie dans la plage "COULEUR"
 'La encore c'est un codage un peu "à la hache" (ça sert à quoi de le définbir d'abord en vert
 'pour le redéfinir aussitot après ? ...
 'Bon je peux me tromper hein... Car je n'ai pas testé : C'est une traduction "à l'aveugle" !
 ActiveChart.SeriesCollection(1).Points(i).MarkerBackgroundColorIndex = _
 ActiveSheet.[COULEUR].Offset(0, Cells(i + 1, 3).Value).Interior.ColorIndex
 Next i
End If
Next
target.Select
End Sub

[EDIT] Désolé, fausse manip : j'ai répondu sur le fil à une question posé par mail...

A+

Peux-tu simplement joindre un fichier avec des données, et le résultat final que tu veux avoir pour ton graphe? (sans programmation)

Parce que là avec ce que tu dis, je sais pas si c'est:

  • toi qui a récupéré des bouts de programmes et les a mis ensemble
  • qql d'autre qui a fait ce programme et tu cherches à le comprendre
En effet quand je lis

besoin traduction programme vba

, je penche pour la seconde hypothèse ....

salut d3d9x en effet c vrai tien voila mon fichier

si tu peu maider c avec grand plaisir


je veux quen vba tous cela soit appliquer est possible

J’ai quatre colonnes : Nom du point / Type du Point ou la classe du point / Valeur X / Valeur Y

avec ce programme dans mon nuage de point il ya :

•Une couleur de point différente selon le type du point ou la classe

•Une étiquette visible uniquement pour chaque point

et que lorsque je change le nombre de la colonne du type de point la couleur se modifie automatiquement dans mon nuage de point

et aussi jai 3graphiques partant du meme tableau qui sexecute automatiquement quand je modifie le tableau cest le resultat attendu

quelqu'un pour miader

Quelqu'un ̀saurait m'aider svp

Bonjour,

Une proposition à tester en PJ.

Seule modif : ajout d'une boucle sur le nombre de graph.

Bonne soirée

Bouben

merci bouben sa fonctionne tres bien du coup je peu ajouter le nombre de ligne que je veux ?

Rechercher des sujets similaires à "traduction programme vba"