Au secours! Aide pour un macro VBA Excel
Résolu/Fermé
perlevn
Messages postés
4
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
4 septembre 2009
-
27 juil. 2009 à 20:20
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 29 juil. 2009 à 20:59
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 29 juil. 2009 à 20:59
A voir également:
- Au secours! Aide pour un macro VBA Excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Si et excel - Guide
- Aller à la ligne excel - Guide
5 réponses
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
28 juil. 2009 à 21:04
28 juil. 2009 à 21:04
Bonsoir,
Tu es obligé de le présenter comme ça et obligatoirement en VBA ?
Un tableau croisé dynamique avec toutes tes moyennes ne suffit pas ?
eric
Tu es obligé de le présenter comme ça et obligatoirement en VBA ?
Un tableau croisé dynamique avec toutes tes moyennes ne suffit pas ?
eric
Bonjour,
je ne peux t'aider qu'en partie parce qu'il y a un bout de code qui m'échappe :
avant de faire ca, il faut que tuenregistres une macro et tu tries par la colonne 1. Quand c'est fait, tu ajoutes le bout de code en dessous de la ligne dim.
sub ajoutligne ()
dim i,j, nbre, voiture, cout as string
i=1
j=1
nbre=0
voiture =""
cells(i,j).select
do while selection =""
voiture = selection
nbre =1
cout =0
cells(i+1,j).select
do while selection = voiture
nbre=nbre+1
i=i+1
cout = cout +cells(i+1,j+1)
cells(i+1,j).select
loop
cout = cout / nbre
cells(1,1) 'mets la cellule ou tu veux mettre ta moyenne
i=i+1
cells(i,j).select
loop
end sub
je ne peux t'aider qu'en partie parce qu'il y a un bout de code qui m'échappe :
avant de faire ca, il faut que tuenregistres une macro et tu tries par la colonne 1. Quand c'est fait, tu ajoutes le bout de code en dessous de la ligne dim.
sub ajoutligne ()
dim i,j, nbre, voiture, cout as string
i=1
j=1
nbre=0
voiture =""
cells(i,j).select
do while selection =""
voiture = selection
nbre =1
cout =0
cells(i+1,j).select
do while selection = voiture
nbre=nbre+1
i=i+1
cout = cout +cells(i+1,j+1)
cells(i+1,j).select
loop
cout = cout / nbre
cells(1,1) 'mets la cellule ou tu veux mettre ta moyenne
i=i+1
cells(i,j).select
loop
end sub
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
28 juil. 2009 à 21:41
28 juil. 2009 à 21:41
bonsoir :)
Range(cell(1, 1), ActiveCell.End(xlDown)).Sort Key1:=Range("A:A"), Order1:=xlAscending
LigneAInserer = False
For i = 1 To Right(Range("A1").End(xlDown).Address, 1)
If Cells(i, 1) <> Cells(i + 1, 1) And LigneAInserer = True Then
Rows(i + 1).Insert Shift:=xlDown
Cells(i + 1, 1) = Cells(i, 1)
Cells(i + 1, 2).Value = "=AVERAGE(B" & PremiereCellIdentique & ":B" & i & ")"
i = i + 1
LigneAInserer = False
PremiereCellIdentique = ""
Else
If Cells(i, 1) = Cells(i + 1, 1) Then
If PremiereCellIdentique = "" Then PremiereCellIdentique = i
LigneAInserer = True
End If
End If
Next
Range(cell(1, 1), ActiveCell.End(xlDown)).Sort Key1:=Range("A:A"), Order1:=xlAscending
LigneAInserer = False
For i = 1 To Right(Range("A1").End(xlDown).Address, 1)
If Cells(i, 1) <> Cells(i + 1, 1) And LigneAInserer = True Then
Rows(i + 1).Insert Shift:=xlDown
Cells(i + 1, 1) = Cells(i, 1)
Cells(i + 1, 2).Value = "=AVERAGE(B" & PremiereCellIdentique & ":B" & i & ")"
i = i + 1
LigneAInserer = False
PremiereCellIdentique = ""
Else
If Cells(i, 1) = Cells(i + 1, 1) Then
If PremiereCellIdentique = "" Then PremiereCellIdentique = i
LigneAInserer = True
End If
End If
Next
Bonjour,
Merci beaucoup de votre aide. Je vais essayer de le faire. Je vous tiens au courant si cela fonctionne ou pas:)
Merci beaucoup de votre aide. Je vais essayer de le faire. Je vous tiens au courant si cela fonctionne ou pas:)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
perlevn
Messages postés
4
Date d'inscription
mardi 26 mai 2009
Statut
Membre
Dernière intervention
4 septembre 2009
29 juil. 2009 à 20:33
29 juil. 2009 à 20:33
Bonjour,
ajh, j'ai testé vos solutions au travail. Finalement, j'ai adopté la solution du tableau croisé dynamique. Mon seul problème est que je ne sais pas comment afficher le détail des totaux que le tableau m'a fait. AVez vous une idée?? Je vous embête encore;) je suis désolée.
ajh, j'ai testé vos solutions au travail. Finalement, j'ai adopté la solution du tableau croisé dynamique. Mon seul problème est que je ne sais pas comment afficher le détail des totaux que le tableau m'a fait. AVez vous une idée?? Je vous embête encore;) je suis désolée.
29 juil. 2009 à 20:35
Oui effectivement, t'as raison. J'ai choisi cette solution, mais je sais pas comment afficher les lignes de détails que le tableau croisé dynamque m'a fait???
29 juil. 2009 à 20:59
Tu ne peux pas afficher tous les détails en développant comme une arborescence.
Par contre si une valeur t'interesse plus particulièrement tu peux double-cliquer dessus, une extraction des données concernées est faite dans une nouvelle feuille.
eric