XL 2013 Garder colonne vide entre deux colonnes (Modification VBA)

  • Initiateur de la discussion Initiateur de la discussion susaita
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

susaita

XLDnaute Occasionnel
Bonjour à tous,
dans l'exemple en attaché j'ai un suivi eau/Elec et à chaque fin de mois en cliquant sur le bouton (ajouter un mois) il me crée une autre colonne en copiant les formules
maintenant ce que je souhaite avoir c'est
1***quand je cliquer sur ajouter un mois la colonne qui s'ajoute serait en E et la colonne F se décale en G, autrement dit garder une colonne vide entre la colonne du dernier mois ajouté et la colonne Total
2***la formule somme qui se trouve sur F11, F12,F20 et F21 soit variable c'est à dire qu'elle prenne en considération les colonnes qui se rajouteront par la suite
(exemple si je rajoute un mois dans la colonne E la formule dans F11=somme(D11:E11)

Cordialement
Susaita
 

Pièces jointes

re,
Merci jacky, mapomme pour les formules
maintenant pour la suppression le code de double clique proposé par jacky me convient mais il doit interdire de supprimer un autre mois sauf le dernier, par exemple si on double clique sur un autre mois qui n'est pas le dernier un message doit s'afficher en interdisant la suppression

Cordialement
Susaita
 
Bonsoir à tous,

Une version v5 qui gère l'ajout de colonne, la suppression par double-clique et les messages à l'utilisateur.
Le code est le module de Feuil1:
VB:
Option Explicit

' La cellule de la ligne 8 et contenant le texte "TOTAL"
' a été nommée CellTOTAL

Sub AjouterMois()
Dim C As Range
  Set C = Range("CellTOTAL").Offset(, -2).Resize(15)
  C.Offset(, 1).Insert shift:=xlShiftToRight
  C.Copy C.Offset(, 1)
  Union(C(2, 2).Resize(2), C(5, 2), C(11, 2).Resize(2), C(14, 2)).ClearContents
  Application.CutCopyMode = False
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim C As Range
  Set C = Range(Range("d8"), Range("CellTOTAL").Offset(, -2))
  If Not Intersect(Target, C) Is Nothing Then
    Cancel = True
    If Target.Column = Range("CellTOTAL").Offset(, -2).Column Then
      If Target.Column = 4 Then
        MsgBox "Cette colonne ne peut pas être effacée!", _
               vbExclamation + vbOKOnly
      Else
        Target.Resize(15).Delete xlShiftToLeft
      End If
    Else
      MsgBox "Seule la colonne " & Range("CellTOTAL").Offset(, -2) & _
             " peut-être effacée!", vbExclamation + vbOKOnly
    End If
  End If
End Sub
 

Pièces jointes

Bonjour susaita,
(...) sauf que si je sélectionne n'importe quelle colonne je peux la supprimer facilement...y'a t'il moyen de l'interdire aussi ? (...)

A un moment donné, il vaut mieux éduquer l'utilisateur que d'essayer à contrer toutes les fausses manip qu'il peut faire (l'utilisateur a toujours plus d'imagination que le pondeur de code !😡 )

En attendant, je me suis amusé à pondre un essai de code qui empêche la suppression des colonnes par l'interface d'Excel sans utiliser la protection de feuille. C'est juste pour le FUN. D'autres pourront essayer d'autres méthodes.
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
1 K
Retour