correction ou modi du code

  • Initiateur de la discussion Initiateur de la discussion Ilino
  • 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 !

Ilino

XLDnaute Barbatruc
Forum Bonsoir
je souhaite avoir plus de eclaircissement concernant ce Code ci dessous
Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, c As Range
Set r = Intersect(Target, Range("J11:J" & Rows.Count), Me.UsedRange)
If r Is Nothing Then Exit Sub
With Feuil1 'Codename de la feuille FGP 2014
  .[AX:BG].EntireColumn.Hidden = False 'affiche le tableau modèle
  For Each r In r 'en cas d'entrées multiples
    If IsDate(r) Then
      If IsError(Application.Match(r, .Rows(28), 0)) Then
         Set c = .Cells(27, .Columns.Count).End(xlToLeft)(2, 3)
        .[AX:BG].Copy c.EntireColumn
        c.EntireColumn.Resize(26, 10).Clear
        
        c = r 'entrée de la date
      End If
    End If
  Next
  .[AX:BG].EntireColumn.Hidden = True 'masque
End With
End Sub

A quel niveau je modifier le code pour afficher la date (titre du tableau) a la ligne 26 ?
j'ai testé la ligne suivante du code et ça n a pas marché

If IsError(Application.Match(r, .Rows(26), 0)) Then

Merci pour votre aide
Edit: ce code est elaboré par Notre AMI JOB (grazie)😱
 

Pièces jointes

Dernière édition:
Re : correction ou modi du code

Bonjour Ilino, le forum,

Plusieurs remarques sur le fichier que tu viens de joindre.

1) C'est typiquement ce que l'on appelle une "usine à gaz".

2) Dans la SelectionChange de la feuille "FGP 2014" remplace "BJ" par "BI" :

Code:
Columns("BI").Resize(, Columns.Count - Columns("BI").Column + 1).Validation.Delete
C'est à cause de ça que tu avais un bug.

3) Dans cette feuille il n'y a pas de titres en BA27:BG27 du tableau modèle, il faut absolument en mettre.

4) Dans la feuille "Facturation" l'entrée d'une nouvelle date prend un temps fou.

Je ne vois pas comment améliorer ça, modifie quand même la macro Change :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, c As Range
Set r = Intersect(Target, Range("J11:J" & Rows.Count), Me.UsedRange)
If r Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
With Feuil1 'Codename de la feuille FGP 2014
  .Unprotect "mdp" 'mot de passe à adapter
  .[AY:BG].EntireColumn.Hidden = False 'affiche le tableau modèle
  For Each r In r 'en cas d'entrées multiples
    If IsDate(r) Then
      If IsError(Application.Match(r, .Rows(26), 0)) Then
        Set c = .Cells(27, .Columns.Count).End(xlToLeft)(0, 3)
        .[AY:BG].Copy c.EntireColumn
        c = r 'entrée de la date
      End If
    End If
  Next
  .[AY:BG].EntireColumn.Hidden = True 'masque
  .Protect "mdp" 'mot de passe à adapter
End With
Application.Calculation = xlCalculationAutomatic
End Sub
Je viens d'ajouter les Application.Calculation dans mon fichier (7).

A+
 
Re : correction ou modi du code

Re
Oky , c'est noté
et l'ouverture du fichier selon les codes , pourquoi il est tres lent ( et pourtant la taille n'est pas vraiment importante)
est ce que les code de Private Sub Workbook_Open qui pose ce pblm ?
GRAZIE
 
Re : correction ou modi du code

Re,

Ce qui plombe surtout ton fichier c'est le grand nombre de formats différents dans la feuille "FGP 2014".

Fais le test suivant sur une copie de ton fichier :

- active la feuille "FGP 2014" et sélectionne toutes les cellules

- onglet Accueil, groupe Edition => Effacer les formats

- enregistre, ferme et rouvre le fichier, c'est nettement plus rapide.

Et surtout quand tu entres une nouvelle date en feuille "Facturation", la création du nouveau tableau est immédiate.

A+
 
Re : correction ou modi du code

Re,

Ce qui plombe surtout ton fichier c'est le grand nombre de formats différents dans la feuille "FGP 2014".

Fais le test suivant sur une copie de ton fichier :

- active la feuille "FGP 2014" et sélectionne toutes les cellules

- onglet Accueil, groupe Edition => Effacer les formats

- enregistre, ferme et rouvre le fichier, c'est nettement plus rapide.

Et surtout quand tu entres une nouvelle date en feuille "Facturation", la création du nouveau tableau est immédiate.

A+
Re,
mais comme ça j'ai tous perdu la mise en forme des tableaux?
A+
 
Re : correction ou modi du code

Bonjour Ilino,

y a t elle d'autre astuce ?

L'effacement des formats que je t'ai dit de tester c'est uniquement pour que tu vois bien d'où vient le problème.

Bien sûr qu'il faut une mise en forme, mais il faudrait que tu la simplifies beaucoup.

Et d'abord en supprimant les petites lignes vides intermédiaires qui sont totalement inutiles.

A+
 
- 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
9
Affichages
476
Retour