A voir également:
- Effacer résultats sélection précédente vba
- Lexer resultats - Télécharger - Sport
- Comment effacer une page sur word - Guide
- Effacer les cookies - Guide
- Effacer les données de navigation - Guide
- Incompatibilité de type vba ✓ - Forum Programmation
11 réponses
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
16 août 2011 à 14:33
16 août 2011 à 14:33
bonjour,
essaie ce petit bout de code :
Dim Plage As Range, Cellule As Range
Set Plage = Range("E1", "E60000")
For Each Cellule In Plage
If Cellule.Value = "Total CDI 2011" Then
Cellule.Value = ""
End If
Next Cellule
Cells(activecell.Row, 5).FormulaLocal = "=SI(E12 = ""C Nature contrat"" ; ""Total CDI 2011""; ""Erreur"")"
essaie ce petit bout de code :
Dim Plage As Range, Cellule As Range
Set Plage = Range("E1", "E60000")
For Each Cellule In Plage
If Cellule.Value = "Total CDI 2011" Then
Cellule.Value = ""
End If
Next Cellule
Cells(activecell.Row, 5).FormulaLocal = "=SI(E12 = ""C Nature contrat"" ; ""Total CDI 2011""; ""Erreur"")"
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
16 août 2011 à 15:29
16 août 2011 à 15:29
bonjour,
essaie ce petit bout de code :
Dim Plage As Range, Cellule As Range
Set Plage = Range("E1", "E60000")
For Each Cellule In Plage
If Cellule.Value = "Total CDI 2011" Then
Cellule.Value = ""
End If
Next Cellule
Cells(activecell.Row, 5).FormulaLocal = "=SI(E12 = ""C Nature contrat"" ; ""Total CDI 2011""; ""Erreur"")"
essaie ce petit bout de code :
Dim Plage As Range, Cellule As Range
Set Plage = Range("E1", "E60000")
For Each Cellule In Plage
If Cellule.Value = "Total CDI 2011" Then
Cellule.Value = ""
End If
Next Cellule
Cells(activecell.Row, 5).FormulaLocal = "=SI(E12 = ""C Nature contrat"" ; ""Total CDI 2011""; ""Erreur"")"
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
16 août 2011 à 15:31
16 août 2011 à 15:31
et en plus, pas fait attention, mets :
If Cellule.Value = "Total CDI 2011" or Cellule.Value = "Erreur" Then
If Cellule.Value = "Total CDI 2011" or Cellule.Value = "Erreur" Then
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
melanie1324
Messages postés
1504
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
16 août 2011 à 15:31
16 août 2011 à 15:31
attention
et en plus, pas fait attention, mets :
If Cellule.Value = "Total CDI 2011" or Cellule.Value = "Erreur" Then
et en plus, pas fait attention, mets :
If Cellule.Value = "Total CDI 2011" or Cellule.Value = "Erreur" Then
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
16 août 2011 à 15:31
16 août 2011 à 15:31
Bonjour,
C'est une formule que tu mets, et qui fait toujours référence à E12.
Toutes tes formules ramènent donc la même valeur, c'est normal.
Il faudrait peut-être changer la formule selon la ligne non ?
eric
C'est une formule que tu mets, et qui fait toujours référence à E12.
Toutes tes formules ramènent donc la même valeur, c'est normal.
Il faudrait peut-être changer la formule selon la ligne non ?
eric
En bidouillant, j'ai trouvé une façon alternative de réaliser mes lignes de sous-totaux sans faire appel à d'autres cellules:
activecell.Offset(1, -9).Select
Selection = "Total CDD 2011"
activecell.Offset(0, 1).Select
Selection.Value = Application.SumIf(Range("(E14)").EntireColumn, "CDD", Range("(F14)").EntireColumn)
activecell.Offset(0, 1).Select
Selection.Value = Application.SumIf(Range("(E14)").EntireColumn, "CDD", Range("(G14)").EntireColumn)
activecell.Offset(0, 1).Select
Selection.Value = Application.SumIf(Range("(E14)").EntireColumn, "CDD", Range("(H14)").EntireColumn)
etc etc sur la même ligne.
En français, cette ligne doit permettre de faire apparaître un sous total en fonction du type de contrat (CDD, CDI, Interim,..). Chaque ligne correspond à un employé et la colonne E donne le type de contrat pour chaque employé.
Mais ceci ne règle toujours pas mon problème. Lorsque je change de centre de coûts, mes précédents sous totaux restent et faussent donc mes nouveaux calculs..
activecell.Offset(1, -9).Select
Selection = "Total CDD 2011"
activecell.Offset(0, 1).Select
Selection.Value = Application.SumIf(Range("(E14)").EntireColumn, "CDD", Range("(F14)").EntireColumn)
activecell.Offset(0, 1).Select
Selection.Value = Application.SumIf(Range("(E14)").EntireColumn, "CDD", Range("(G14)").EntireColumn)
activecell.Offset(0, 1).Select
Selection.Value = Application.SumIf(Range("(E14)").EntireColumn, "CDD", Range("(H14)").EntireColumn)
etc etc sur la même ligne.
En français, cette ligne doit permettre de faire apparaître un sous total en fonction du type de contrat (CDD, CDI, Interim,..). Chaque ligne correspond à un employé et la colonne E donne le type de contrat pour chaque employé.
Mais ceci ne règle toujours pas mon problème. Lorsque je change de centre de coûts, mes précédents sous totaux restent et faussent donc mes nouveaux calculs..
Après relecture, même moi je m'y perds. C'est beaucoup trop compliqué sans le fichier sous les yeux.
Je peux vous le mettre en ligne ce soir si vous voulez. Seul bémol, la macro comporte des fichiers liés qui doivent être nécessairement ouverts pour qu'elle s'exécute correctement que je ne pourrai vous joindre...
Je peux vous le mettre en ligne ce soir si vous voulez. Seul bémol, la macro comporte des fichiers liés qui doivent être nécessairement ouverts pour qu'elle s'exécute correctement que je ne pourrai vous joindre...
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
16 août 2011 à 17:03
16 août 2011 à 17:03
Pas de pb
Mais comme je suis transparent sur tes 2 posts (mag55 c'est toi aussi non ?) je me retire avec plaisir...
eric
Mais comme je suis transparent sur tes 2 posts (mag55 c'est toi aussi non ?) je me retire avec plaisir...
eric
Comment ca transparent?
Oui pardon, je vous ai écrit de 2 postes différents d'où le pseudo différent oups.
Oui pardon, je vous ai écrit de 2 postes différents d'où le pseudo différent oups.
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
Modifié par eriiic le 16/08/2011 à 17:45
Modifié par eriiic le 16/08/2011 à 17:45
Comment ca transparent?
Quand on répond à un demandeur on s'attend à un commentaire de sa part (il y en a même qui disent merci parfois... si si...)
J'ai horreur de parler dans vent, l'impression de déranger...
eric
Quand on répond à un demandeur on s'attend à un commentaire de sa part (il y en a même qui disent merci parfois... si si...)
J'ai horreur de parler dans vent, l'impression de déranger...
eric
Excusez moi si c'est l'impression que j'ai donné. La n'était pas le but. Quand on est au travail, il faut que ca aille vite.. Du coup, j'ai pu oublier d'y mettre la forme, désolée.
Par contre, ayant un langage plutôt basique pour le moment sur vba, j'avoue ne pas avoir compris tous vos conseils avisés.
Par contre, ayant un langage plutôt basique pour le moment sur vba, j'avoue ne pas avoir compris tous vos conseils avisés.
Je ne me suis pas envoyée la bonne version sur le pc perso ce soir.
Toutefois, j'aimerais savoir s'il existerait une macro (imbriquée dans ma macro) permettant d'expliquer que :
A chaque changement de sélection (c'est à dire dès qu'on sélectionne un centre de coûts différent via la boîte de dialogue parmi la liste déroulante), on puisse supprimer tout ce qu'a engendré la sélection précédente, et recommencer de zéro ou presque.
Ce que je n'ai peut-être pas précisé au départ, c'est que j'ai entré toutes les fonctions entre le Sub et End Sub du Userform. Du coup, quand je change de centre de coûts, les résultats se superposent au lieu de se remplacer. Il est là mon problème.
Merci d'avance pour votre aide
Toutefois, j'aimerais savoir s'il existerait une macro (imbriquée dans ma macro) permettant d'expliquer que :
A chaque changement de sélection (c'est à dire dès qu'on sélectionne un centre de coûts différent via la boîte de dialogue parmi la liste déroulante), on puisse supprimer tout ce qu'a engendré la sélection précédente, et recommencer de zéro ou presque.
Ce que je n'ai peut-être pas précisé au départ, c'est que j'ai entré toutes les fonctions entre le Sub et End Sub du Userform. Du coup, quand je change de centre de coûts, les résultats se superposent au lieu de se remplacer. Il est là mon problème.
Merci d'avance pour votre aide