Salut le forum
Je suis débutant en vba et je reprends un code existant sur excel 2000.
J'ai un pb avec le code suivant :
Le but de ce code est de récuperer toutes les valeurs différentes de la variable située en Workbooks(NomClasseur).Sheets("Données").Cells(1, colVar) et de calculer les fréquences de chaque modalité
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 (.....) Columns(4).EntireColumn.AutoFit tabModal = Application.Run([VALEURS.UNIQUES], Range(Workbooks(NomClasseur).Sheets("Données").Cells(2, colVar), Workbooks(NomClasseur).Sheets("Données").Cells(nbLig, colVar)), 1) j = 3 k = 1 Do While tabModal(k, 1) <> "" Cells(j + k, 1) = tabModal(k, 1) Cells(j + k, 2) = Application.WorksheetFunction.CountIf(Range(Workbooks(NomClasseur).Sheets("Données").Cells(2, colVar), Workbooks(NomClasseur).Sheets("Données").Cells(nbLig, colVar)), "=" & tabModal(k, 1)) Cells(j + k, 3) = 100 * Cells(j + k, 2) / (nbLig - 1) If k = 1 Then Cells(j + k, 4) = Cells(j + k, 3) Else Cells(j + k, 4) = Cells(j + k - 1, 4) + Cells(j + k, 3) End If k = k + 1 Loop= Application.Run([VALEURS.UNIQUES], Range(Workbooks(NomClasseur).Sheets("Données").Cells(2, colVar), Workbooks(NomClasseur).Sheets("Données").Cells(nbLig, colVar)), 1) j = 3 k = 1 Do While tabModal(k, 1) <> "" Cells(j + k, 1) = tabModal(k, 1) Cells(j + k, 2) = Application.WorksheetFunction.CountIf(Range(Workbooks(NomClasseur).Sheets("Données").Cells(2, colVar), Workbooks(NomClasseur).Sheets("Données").Cells(nbLig, colVar)), "=" & tabModal(k, 1)) Cells(j + k, 3) = 100 * Cells(j + k, 2) / (nbLig - 1) If k = 1 Then Cells(j + k, 4) = Cells(j + k, 3) Else Cells(j + k, 4) = Cells(j + k - 1, 4) + Cells(j + k, 3) End If k = k + 1 Loop
Le pb c'est que j'ai rajoutté une usf a l'appli (la variable contenu dans clic est desormais récupérer a partir de la usf et non plus de Workbooks(NomClasseur).Sheets("Données") ) afin qu'elle soit plus belle et maintenant ce morceau de code ne fonctionne plus :
Normalement il permet de stocker toutes les modalités différentes de notre varibale. Mais il ne stock plus rien (tabmodal(1,1) l'indice n'appartient pas a la selection !) Pour info tabmodal est defini en variant...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 tabModal = Application.Run([VALEURS.UNIQUES], Range(Workbooks(NomClasseur).Sheets("Données").Cells(2, colVar), Workbooks(NomClasseur).Sheets("Données").Cells(nbLig, colVar)), 1)
J'ai bien essayer de cacher ma usf et de mettre des
windows(mafeuille).activate ou workbooks(mafeuille).activate pour cacher ma usf et réactivé mes classeurs comme si de rien mais ça ne marche pas...
J'espere avoir été claire sinon n'hesitez pas a me demander des explications.
Merci d'avance
Partager