Simplification macro

ifi77

XLDnaute Occasionnel
Bonjour @ tous,

je cherche si il existe un moyen de simplifier la macro qui me permets de renseigner les labels de mon userform statistique_annuel.
en effet, ces derniers reprennent les valeurs contenus dans le tableau situé sur la feuille auteuil.
J'ai pour l'instant désigné la valeur de chaque label.

merci

@
 

Pièces jointes

  • choix pour statistiques report sur userform.zip
    34.8 KB · Affichages: 25

Staple1600

XLDnaute Barbatruc
Re : Simplification macro

Bonsoir Aurélie et Yannick


Oui, le moyen existe.

(sauf pour le code de Stephen Bullen utilisé par Ti)

Une première voie

Code:
Private Sub UserForm_Initialize()
  .Activate
  Range("A1").Select 'uniquement pour Excel97
  With ActiveSheet
    NbGraph = .ChartObjects.Count
    GraphActif = 1
    .ChartObjects(GraphActif).CopyPicture xlScreen, xlPicture
    Set Image1.Picture = PastePicture(xlPicture)
  End With

With Sheets("auteuil")
Label5 = .Range("B2").Value
Label17 = .Range("B3").Value
[COLOR="SeaGreen"]'etc
'etc[/COLOR]
Label31 = .Range("D13").Value
End With
End sub
 
Dernière édition:

Softmama

XLDnaute Accro
Re : Simplification macro

Bonjour,

Simplification possible dans l'absolu mais nécessite de renommer tes labels (de label1 à label36 dans l'ordre et placer ces lignes à la place de tes labels un peu mélangés dans la grille :

For t = 0 To 2
For u = 1 To 12
Controls("label" & 12 * t + u) = Sheets("auteuil").Range("B1").Offset(t, u)
Next
Next
 

Staple1600

XLDnaute Barbatruc
Re : Simplification macro

Bonsoir Softmama

Pendant ce temps là, j'abusais des tableaux :)o)

Code:
Private Sub UserForm_Initialize()
Dim tB, tC, tD, tlB, tlC, tlD, i&
tlB = Split("5 17 16 15 14 13 12 11 10 9 8 7")
tlC = Split("18 29 28 27 26 25 24 23 22 21 20 19")
tlD = Split("30 41 40 39 38 37 36 35 34 33 32 31")

With Sheets("auteuil")
    tB = .Range("B2:B13")
    tC = .Range("C2:C13")
    tD = .Range("D2:D13")
End With

For i = 0 To 10
    Me.Controls("Label" & tlB(i)).Caption = tB(i + 1, 1)
    Me.Controls("Label" & tlC(i)).Caption = tC(i + 1, 1)
    Me.Controls("Label" & tlD(i)).Caption = tD(i + 1, 1)
Next i
End Sub

Bravo pour ta concision et ta logique ;)
 

Discussions similaires

Réponses
3
Affichages
303

Statistiques des forums

Discussions
312 331
Messages
2 087 355
Membres
103 528
dernier inscrit
hplus