Bonjour le forum,
Je me tourne vers vous car j'ai un petit problème au niveau de la programmation VBA et je n'arrive pas à trouver la solution seul.
Alors j'ai crée dans un USERFORM un liste copiant tous titres de paramètres de mon tableau. Et en cliquant sur un titre de la liste, j'aimerais que les valeurs appartenant à ce titre se copie autimatiquement dans un autres onglet.
Voici le programme
Avec ce code j'arive bien à copier les entêtes dans la liste mais en cliquant sur le l'entête dont je souhaite copié les valeurs dans un autre onglet. Sa ne fonctionne pas, il copie tout le temps la même colonne. Je compren ce qu'il copie mais je ne sais pas le modifié pour que le programme tienne compte de mes choix.
Il me copie que la colonne "i" alors que c'est une variable.
Un autre soucis, j'aimerais copié plusieurs colonnes dans mon autre onglet et je ne vois absolument pas comment je peux faire.
Je mets en copie mon fichier de travail.
Merci d'avance pour votre aide.
Brux
Je me tourne vers vous car j'ai un petit problème au niveau de la programmation VBA et je n'arrive pas à trouver la solution seul.
Alors j'ai crée dans un USERFORM un liste copiant tous titres de paramètres de mon tableau. Et en cliquant sur un titre de la liste, j'aimerais que les valeurs appartenant à ce titre se copie autimatiquement dans un autres onglet.
Voici le programme
Code:
Private Sub UserForm_Initialize()
Dim i As Integer
Dim Valeurs As Variant
Dim a As Object
Set a = CreateObject("Scripting.Dictionary")
'efface le contenu de la listbox
ListBoxdiffus.Clear
'avec la feuille base de donnée.
With Sheets("calcul")
'Pour aller plus vite on charge les valeurs dans un tableau
Valeurs = .Range("B17:S17").Value
For i = LBound(Valeurs, 2) To UBound(Valeurs, 2)
If Not IsEmpty(Valeurs(1, i)) Then a(Valeurs(1, i)) = ""
Next i
End With
If IsArray(Valeurs) Then ListBoxdiffus.List = a.keys
End Sub
Private Sub ListBoxdiffus_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim j As Integer
Dim valeur As Variant
Dim i As Integer
With Sheets("calcul")
valeur = .Range("B17:S17").Value
For i = LBound(valeur, 2) To UBound(valeur, 2)
For j = LBound(valeur) To UBound(valeur)
'chargement des valeurs MCI
'Sheets("Diffusion").Cells(17, 2).Value = ListBoxdiffus
If valeur(1, i) = ListBoxdiffus Then
.Range("i" & j + 17 & ":i" & j + 26).Copy
End If
Next j
Next i
End With
End Sub
Avec ce code j'arive bien à copier les entêtes dans la liste mais en cliquant sur le l'entête dont je souhaite copié les valeurs dans un autre onglet. Sa ne fonctionne pas, il copie tout le temps la même colonne. Je compren ce qu'il copie mais je ne sais pas le modifié pour que le programme tienne compte de mes choix.
Code:
.Range("i" & j + 17 & ":i" & j + 26).Copy
Un autre soucis, j'aimerais copié plusieurs colonnes dans mon autre onglet et je ne vois absolument pas comment je peux faire.
Je mets en copie mon fichier de travail.
Merci d'avance pour votre aide.
Brux