Reproduire formules vba sur plusieurs colonnes

Piaf79

XLDnaute Junior
Bonsoir le forum,

J'ai crée plusieurs formules vba qui peuvent déclencher ou non un MsgBox. Mon soucis est qu'elles ne s'appliquent pour le moment qu'à la colonne D.

Comment procéder pour qu'elles soient reproductibles sur les colonnes E, F, G, H etc. ?

Dans les formules les cellules A* et B* sont figées par contre les cellules D* doivent s'adapter aux colonnes E, F, G, H etc.

Je vous joints un fichier pour exemple.

Merci d'avance pour votre aide
 

Pièces jointes

  • Module de gestion.xlsm
    73.1 KB · Affichages: 39

Piaf79

XLDnaute Junior
Re : Reproduire formules vba sur plusieurs colonnes

Bonsoir nicopec,
J'ai effectué la réécriture du code... mais vba me met "Erreur de compilation : procédure trop grande".
Existe t il un moyen de réduire le code pour "échapper à ce bug ?
Merci.
Piaf79
 

Paf

XLDnaute Barbatruc
Re : Reproduire formules vba sur plusieurs colonnes

Bonjour Piaf79, nicopec

Un essai de transposition de ce qui existe pour la colonne D à toutes les colonnes:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim MaCol As Integer, MaLig As Integer, MaSomme As Long
 If Target.Count > 1 Then Exit Sub
 If Target.Column > 3 And Target.Column < 14 Then
    MaCol = Target.Column
    MaLig = Target.Row
    
    If Not IsEmpty(Cells(1, MaCol)) Then
        If MaLig = 5 And [$B$5] <> Target And Target > "0" Then MesPerso [$A$5], MaCol
        If MaLig >= 6 And MaLig <= 11 Then
            MaSomme = Application.Sum(Range(Cells(6, MaCol), Cells(11, MaCol)))
            If [$B$6] <> MaSomme And MaSomme > 0 Then MesPerso [$A$6], MaCol
        End If
        If MaLig >= 12 And MaLig <= 16 Then
            MaSomme = Application.Sum(Range(Cells(12, MaCol), Cells(16, MaCol)))
            If [$B$12] <> MaSomme And MaSomme > 0 Then MesPerso [$A$12], MaCol
        End If
        If MaLig >= 17 And MaLig <= 21 Then
            MaSomme = Application.Sum(Range(Cells(17, MaCol), Cells(21, MaCol)))
            If [$B$17] <> MaSomme And MaSomme > 0 Then MesPerso [$A$17], MaCol
        End If
    End If
 End If
End Sub
et
Code:
Sub MesPerso(Art, Col)
         MsgBox "La quantité de l'article " & Art & " n'est pas respectée pour " & Cells(4, Col) & " " & Cells(3, Col), vbExclamation, "Module de gestion"
End Sub

à copier à la suite du code précédent.

A tester

A+
 

Piaf79

XLDnaute Junior
Re : Reproduire formules vba sur plusieurs colonnes

Paf,
Merci beaucoup pour ce code, c'est parfait ainsi !
J'avais commencer à travailler sur la MEFC mais c'est clair que l'affichage du MsgBox est plus sympa.
Bonne journée à toi, au forum.
Piaf79
 

Discussions similaires

Réponses
22
Affichages
750

Statistiques des forums

Discussions
312 153
Messages
2 085 800
Membres
102 980
dernier inscrit
brossadan