Incompatibilité de deux modules VBA dans un même fichier
Résolu
el-doyon
Messages postés
42
Date d'inscription
Statut
Membre
Dernière intervention
-
el-doyon Messages postés 42 Date d'inscription Statut Membre Dernière intervention -
el-doyon Messages postés 42 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
habituellement j'utilise deux codes récupérés sur le forum dans deux fichiers excel séparés.
Je rencontre un problème lorsque je souhaite les utiliser dans le même fichier excel.
- Le premier code insère des lignes dans mon tableau, ci dessous le code :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Lg%, Rep
If Not Application.Intersect(Target, Columns("a")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
Lg = Target.Row '- 1 (si rajout de la ligne au dessus sinon tel quel pour en dessous)'
Do
Rep = Application.InputBox("Combien de lignes à ajouter ?", "Ajoute lignes", 1, Type:=1)
If Rep = False Then Exit Sub 'bouton Annuler
Loop While Rep = ""
Rows(Lg).Copy
Range(Rows(Lg + 1), Rows(Lg + Rep)).Insert
Application.CutCopyMode = False
On Error Resume Next 'si ligne vide
Range(Rows(Lg + 1), Rows(Lg + Rep)).SpecialCells(xlCellTypeConstants, 23).ClearContents
End If
End Sub
- Le deuxième effectue la somme des cellules qui partage la même couleur. Il est placé dans un module mais pour actualiser les calculs, un code ce trouve sur la même feuille que le code 1 :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
le module 1 :
Function SOMME_SI_COULEUR(PlageSomme As Range, PlageCouleur As Range) As Variant
'*********************************************************
' Effectuer la somme des cellules en couleur *
'*********************************************************
Dim Cel As Range
Dim Som As Double
If PlageCouleur.Cells.Count > 1 Then
SOMME_SI_COULEUR = CVErr(xlErrValue)
Exit Function
End If
For Each Cel In PlageSomme
If Cel.Interior.ColorIndex = PlageCouleur.Interior.ColorIndex Then Som = Som + Cel
Next
SOMME_SI_COULEUR = Som
End Function
Quelqu'un peut-il m'aider à résoudre ce problème et faire en sorte que les deux codes fonctionnent au sein du même fichiers ?
Merci d'avance.
habituellement j'utilise deux codes récupérés sur le forum dans deux fichiers excel séparés.
Je rencontre un problème lorsque je souhaite les utiliser dans le même fichier excel.
- Le premier code insère des lignes dans mon tableau, ci dessous le code :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Lg%, Rep
If Not Application.Intersect(Target, Columns("a")) Is Nothing Then
If Target.Count > 1 Then Exit Sub
Lg = Target.Row '- 1 (si rajout de la ligne au dessus sinon tel quel pour en dessous)'
Do
Rep = Application.InputBox("Combien de lignes à ajouter ?", "Ajoute lignes", 1, Type:=1)
If Rep = False Then Exit Sub 'bouton Annuler
Loop While Rep = ""
Rows(Lg).Copy
Range(Rows(Lg + 1), Rows(Lg + Rep)).Insert
Application.CutCopyMode = False
On Error Resume Next 'si ligne vide
Range(Rows(Lg + 1), Rows(Lg + Rep)).SpecialCells(xlCellTypeConstants, 23).ClearContents
End If
End Sub
- Le deuxième effectue la somme des cellules qui partage la même couleur. Il est placé dans un module mais pour actualiser les calculs, un code ce trouve sur la même feuille que le code 1 :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
le module 1 :
Function SOMME_SI_COULEUR(PlageSomme As Range, PlageCouleur As Range) As Variant
'*********************************************************
' Effectuer la somme des cellules en couleur *
'*********************************************************
Dim Cel As Range
Dim Som As Double
If PlageCouleur.Cells.Count > 1 Then
SOMME_SI_COULEUR = CVErr(xlErrValue)
Exit Function
End If
For Each Cel In PlageSomme
If Cel.Interior.ColorIndex = PlageCouleur.Interior.ColorIndex Then Som = Som + Cel
Next
SOMME_SI_COULEUR = Som
End Function
Quelqu'un peut-il m'aider à résoudre ce problème et faire en sorte que les deux codes fonctionnent au sein du même fichiers ?
Merci d'avance.
A voir également:
- Incompatibilité de deux modules VBA dans un même fichier
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
2 réponses
re bonjour,
je joins un fichier exemple pour que ça soit plus clair.
http://www.cjoint.com/c/GBcv3gUoG3a__merci de votre aide
je joins un fichier exemple pour que ça soit plus clair.
http://www.cjoint.com/c/GBcv3gUoG3a__merci de votre aide
J'ai dû modifier dans les 2 modules.
Et comme il y avait toujours de la résistance pour ne pas forcer le recalcul de toutes les formules j'ai ajouté un nom sommeCoul qui doit avoir toutes les cellules ayant cette fonction (puisque ces cellules se baladent avec tes insertions). Le compléter si tu ajoutes des SOMME_SI_COULEUR().
https://www.cjoint.com/c/GBcwHTNVQx2
eric
Et comme il y avait toujours de la résistance pour ne pas forcer le recalcul de toutes les formules j'ai ajouté un nom sommeCoul qui doit avoir toutes les cellules ayant cette fonction (puisque ces cellules se baladent avec tes insertions). Le compléter si tu ajoutes des SOMME_SI_COULEUR().
https://www.cjoint.com/c/GBcwHTNVQx2
eric
effectivement j'ai oublié de le préciser. Alors dès que j'utilise le code 1 pour insérer 1 ou des lignes, cela bloque l'utilisation du code 2. il s'affiche alors dans la cellule #valeur. Lorsque j'utilise le code 2 sans rajouter de lignes, aucun problème.
Francis
Sinon déposer un fichier.
Depuis 2009 que tu es inscrit tu n'as pas remarqué qu'on pouvait mettre en forme le code ?
Merci de le faire sur un code indenté parce que là ça ne donne pas envie de le lire.
eric