Calcul du total d'une feuille par un code VBA
Résolu/Fermé
Paulinsasso
Messages postés
2
Date d'inscription
vendredi 11 avril 2014
Statut
Membre
Dernière intervention
17 avril 2014
-
14 avril 2014 à 18:07
platypus69 Messages postés 108 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 11 février 2015 - 24 avril 2014 à 09:35
platypus69 Messages postés 108 Date d'inscription mardi 24 février 2009 Statut Membre Dernière intervention 11 février 2015 - 24 avril 2014 à 09:35
A voir également:
- Calcul du total d'une feuille par un code VBA
- Voici du code ascii : - Guide
- Calcul moyenne excel - Guide
- Code puk bloqué - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Code telephone oublié - Guide
5 réponses
platypus69
Messages postés
108
Date d'inscription
mardi 24 février 2009
Statut
Membre
Dernière intervention
11 février 2015
7
17 avril 2014 à 12:57
17 avril 2014 à 12:57
Bonjour,
pour commencer pourrais tu nous fournir le fichier pour que l'on se rende compte de ta demande. Sans cela c'est un peu difficile.
pour commencer pourrais tu nous fournir le fichier pour que l'on se rende compte de ta demande. Sans cela c'est un peu difficile.
Paulinsasso
Messages postés
2
Date d'inscription
vendredi 11 avril 2014
Statut
Membre
Dernière intervention
17 avril 2014
17 avril 2014 à 17:22
17 avril 2014 à 17:22
Bonjour,
il s'agit d'un fichier de dépenses et d'investissement d'une Institution d'assurance maladie donc confidentiel. Vous voyez le mal que je pourrai avoir en vous envoyant ce fichier sensible. Je suis un peu embarrassé.
le fichier contient des éléments de dépenses pour tous les postes budgetaires.
il s'agit d'un fichier de dépenses et d'investissement d'une Institution d'assurance maladie donc confidentiel. Vous voyez le mal que je pourrai avoir en vous envoyant ce fichier sensible. Je suis un peu embarrassé.
le fichier contient des éléments de dépenses pour tous les postes budgetaires.
platypus69
Messages postés
108
Date d'inscription
mardi 24 février 2009
Statut
Membre
Dernière intervention
11 février 2015
7
22 avril 2014 à 15:27
22 avril 2014 à 15:27
pourrais tu à ce moment, nous donner la partie de code que tu as écrite, pour voir quels sont les données labdas. j'ai une petite idée sur la façon de faire mais je préfère être sûr.
Tu n'utilises que Excel?
Tu n'utilises que Excel?
Oui je n'utilise que Excel pour le moment.
Voici le code
Public Sub RepartitionparPostBud()
'Crée une nouvelle feuille de calcul pour chaque poste budgétaire et copie les consommations dans la feuille créée
Dim numligne, numlignePostBud, numFeuil As Integer
Dim FeuilPostBud As Worksheet
Dim nomPostBud As String
numligne = 2
numlignePostBud = 4
nomPostBud = ""
Set Feuildonnees = ThisWorkbook.Worksheets("Conso Budget")
Do
If nomPostBud <> Feuildonnees.Cells(numligne, 1).Value _
And Feuildonnees.Cells(numligne, 1).Value <> "Fin" Then
'créer une nouvelle feuille
Set FeuilPostBud = ThisWorkbook.Worksheets.Add
'Nommer la feuille créée
FeuilPostBud.Name = Left(Feuildonnees.Cells(numligne, 1).Value, 28) + "_" + CStr(FeuilPostBud.Index)
If Len(Feuildonnees.Cells(numligne, 1).Value) > 31 Then
FeuilPostBud.Name = Left(Feuildonnees.Cells(numligne, 1).Value, 28) + "_" + CStr(FeuilPostBud.Index)
Else: FeuilPostBud.Name = Feuildonnees.Cells(numligne, 1).Value
End If
'Déplacer la feuille créée après les feuilles existentes
FeuilPostBud.Move after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
'pour comparer à la ligne suivante
nomPostBud = Feuildonnees.Cells(numligne, 1)
numlignePostBud = 4
'Mettre un titre au tableau
FeuilPostBud.Cells(2, 3).Value = FeuilPostBud.Name
'Mettre les titres des colonnes
FeuilPostBud.Range(FeuilPostBud.Cells(3, 1), FeuilPostBud.Cells(3, 13)).Value = Feuildonnees.Range(Feuildonnees.Cells(1, 1), Feuildonnees.Cells(1, 13)).Value
End If
'Inscrire les lignes copiées ds la feuille
FeuilPostBud.Range(FeuilPostBud.Cells(numlignePostBud, 1), FeuilPostBud.Cells(numlignePostBud, 13)).Value = Feuildonnees.Range(Feuildonnees.Cells(numligne, 1), Feuildonnees.Cells(numligne, 13)).Value
numligne = numligne + 1
numlignePostBud = numlignePostBud + 1
Loop Until Feuildonnees.Cells(numligne, 1).Value = "Fin"
MsgBox "L'inscription des lignes copiées a bien réussi"
End Sub
Voici le code
Public Sub RepartitionparPostBud()
'Crée une nouvelle feuille de calcul pour chaque poste budgétaire et copie les consommations dans la feuille créée
Dim numligne, numlignePostBud, numFeuil As Integer
Dim FeuilPostBud As Worksheet
Dim nomPostBud As String
numligne = 2
numlignePostBud = 4
nomPostBud = ""
Set Feuildonnees = ThisWorkbook.Worksheets("Conso Budget")
Do
If nomPostBud <> Feuildonnees.Cells(numligne, 1).Value _
And Feuildonnees.Cells(numligne, 1).Value <> "Fin" Then
'créer une nouvelle feuille
Set FeuilPostBud = ThisWorkbook.Worksheets.Add
'Nommer la feuille créée
FeuilPostBud.Name = Left(Feuildonnees.Cells(numligne, 1).Value, 28) + "_" + CStr(FeuilPostBud.Index)
If Len(Feuildonnees.Cells(numligne, 1).Value) > 31 Then
FeuilPostBud.Name = Left(Feuildonnees.Cells(numligne, 1).Value, 28) + "_" + CStr(FeuilPostBud.Index)
Else: FeuilPostBud.Name = Feuildonnees.Cells(numligne, 1).Value
End If
'Déplacer la feuille créée après les feuilles existentes
FeuilPostBud.Move after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)
'pour comparer à la ligne suivante
nomPostBud = Feuildonnees.Cells(numligne, 1)
numlignePostBud = 4
'Mettre un titre au tableau
FeuilPostBud.Cells(2, 3).Value = FeuilPostBud.Name
'Mettre les titres des colonnes
FeuilPostBud.Range(FeuilPostBud.Cells(3, 1), FeuilPostBud.Cells(3, 13)).Value = Feuildonnees.Range(Feuildonnees.Cells(1, 1), Feuildonnees.Cells(1, 13)).Value
End If
'Inscrire les lignes copiées ds la feuille
FeuilPostBud.Range(FeuilPostBud.Cells(numlignePostBud, 1), FeuilPostBud.Cells(numlignePostBud, 13)).Value = Feuildonnees.Range(Feuildonnees.Cells(numligne, 1), Feuildonnees.Cells(numligne, 13)).Value
numligne = numligne + 1
numlignePostBud = numlignePostBud + 1
Loop Until Feuildonnees.Cells(numligne, 1).Value = "Fin"
MsgBox "L'inscription des lignes copiées a bien réussi"
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
platypus69
Messages postés
108
Date d'inscription
mardi 24 février 2009
Statut
Membre
Dernière intervention
11 février 2015
7
24 avril 2014 à 09:35
24 avril 2014 à 09:35
salut,
je répond en coût de vent, mais pourquoi ne pas faire comme pour ta variable numligne qui s'incrémente à chaque boucle.
voila ce que ca pourrait donnée, par contre si tu as une feuille pour chaque budget, il va falloir réinitialiser total a 0
je répond en coût de vent, mais pourquoi ne pas faire comme pour ta variable numligne qui s'incrémente à chaque boucle.
'création d'une variable total
Dim totalBud AS Long
'Inscrire les lignes copiées ds la feuille
FeuilPostBud.Range(FeuilPostBud.Cells(numlignePostBud, 1), FeuilPostBud.Cells(numlignePostBud, 13)).Value = Feuildonnees.Range(Feuildonnees.Cells(numligne, 1), Feuildonnees.Cells(numligne, 13)).Value
'ajoute la somme de chaque ligne
totalBud = totalBud + Feuildonnees.Range(Feuildonnees.Cells(numligne, 1), Feuildonnees.Cells(numligne, 13)).Value
numligne = numligne + 1
numlignePostBud = numlignePostBud + 1
voila ce que ca pourrait donnée, par contre si tu as une feuille pour chaque budget, il va falloir réinitialiser total a 0