Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

demande de modif sur du VBA

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 !

sev31130

XLDnaute Impliqué
bonjour

je joins un fichier

si vous voulez bien lire dans les commentaire ce que j ai comme problème

Par avance merci
 
Re : demande de modif sur du VBA

Bonjour,

Déjà il n'y a pas de fichier. De plus si tu ne veux pas passer à côté d'excellentes réponses, n'oblige pas les gens à ouvrir un fichier pour comprendre ton problème, fais l'effort de poser une question explicite et formulée.

A+
 
Re : demande de modif sur du VBA

Bonjour sev31130, salut Hasco,

Sur le fichier tu as écrit :

IL FAUT EMPECHER DE RECOPIER LA LIGNE 4 COMPLETE DANS TOUTES LES FEUILLES "ecart
CAR JE LA REMPLIE MANUELLEMENT ET ELLE EST DIFFERENTE POUR CHAQUE FEUILLE

Ce que tu n'as pas compris c'est que chaque feuille écart est mise à jour à partir de la feuille source chaque fois qu'on l'active.

Toute modification d'une feuille écart ne sert donc strictement à rien.

A+
 
Dernière édition:
Re : demande de modif sur du VBA

Re,

Pour que la ligne 4 soit différente sur chaque feuille écart, il faut que la macro modifie les données de la ligne 4 de la feuille source avant que cette feuille soit copiée.

A+
 
Re : demande de modif sur du VBA

bonsoir JOB75

Est ce que tu voudrais bien toi qui à fait une formule qui marche a merveille, me rendre cet ultime service , de me donner la formule à recopier ( j'ai compris comment faire pour la copier) et avec la possibilité de ne pas copier la ligne 4, car c'est des valeurs que je mets au 1er janvier de chaque année ...
Je sais que je t'ennui, mais je ne sais a quel saint me vouer

AMITIES

yves
 
Re : demande de modif sur du VBA

Re,

Bon, regarde le fichier joint.

Dans les feuilles sources ecart P et ecart G j'ai créé la plage T2:AF4.

Chaque ligne de cette plage correspond à l'une des feuilles de destination P T O.

Elle est copiée sur la plage F4:R4 par ce code :

Code:
F.[T1:AF1].Offset(Application.Match(lettre, F.[S2:S4], 0)).Copy F.[F4]
Nouvelle macro :

Code:
Sub Copie(F As Worksheet, Sh As Worksheet)
If Not Sh.Name Like F.Name & "?" Then Exit Sub
Dim lettre As String, lig As Long
lettre = Right(Sh.Name, 1)
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'à cause des liaisons...
F.[T1:AF1].Offset(Application.Match(lettre, F.[S2:S4], 0)).Copy F.[F4]
F.Cells.Copy Sh.[A1] 'pour les formats
Sh.UsedRange = F.UsedRange.Value 'supprime les formules
lig = Sh.UsedRange.Row + Sh.UsedRange.Rows.Count - 1
If lig < 5 Then Exit Sub 'début en ligne 5
With Sh.Range(Sh.Cells(5, 5), Sh.Cells(lig, 5))
  Me.Names.Add "matrice", .Value 'nom défini par une matrice
  .FormulaArray = "=LN(matrice=""" & lettre & """)"
  .Value = .Value
  .EntireRow.Sort .Cells(1), Header:=xlNo 'tri pour accélérer la suppression
  On Error Resume Next
  .SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete
  .Value = lettre
  Me.Names("matrice").Delete
End With
End Sub
Le fichier sur cjoint.com :

http://cjoint.com/?CIjuibDIEVe

A+
 
Re : demande de modif sur du VBA

ALLO

SUPER BIEN
juste un petit problème:


la ligne (T2- AF2) des feuilles "ecart P" et "ecart G"
renseigne bien la ligne F4- R4 de "ecart PP"
mais elle renseigne aussi la ligne F4 - R4 de "ecart P" ou de "ecart G"
D'ailleurs je viens de me rendre compte que les lignes F4-R4 de "ecart P" et "ecart G"
fluctuent en fonction de la dernière page consulté
Donc exemple si je viens de "O" en "ecart P" les valeurs de la ligne F4-R4 serons les mêmes que "O"
Si tu veux commencé en ligne 6 au lieu de ligne 5
et dans la plage la 1ere ligne tu créée PP,
ainsi chaque ligne correspondras à l'une des feuilles de destination: PP- T - P - O et PG - T - P - O
et figer la ligne F4-R4 qui est renseigné le 1er janvier de chaque année pour chaque feuille

Par avance merci

amicalement
Yves
 
Dernière édition:
Re : demande de modif sur du VBA

Re,

Il suffit de mémoriser la plage F4:R4 de la feuille source :

Code:
Sub Copie(F As Worksheet, Sh As Worksheet)
If Not Sh.Name Like F.Name & "?" Then Exit Sub
Dim lettre As String, mem, lig As Long
lettre = Right(Sh.Name, 1)
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'à cause des liaisons...
mem = F.[F4:R4] 'mémorise
F.[T1:AF1].Offset(Application.Match(lettre, F.[S2:S4], 0)).Copy F.[F4]
F.Cells.Copy Sh.[A1] 'pour les formats
Sh.UsedRange = F.UsedRange.Value 'supprime les formules
F.[F4:R4] = mem
lig = Sh.UsedRange.Row + Sh.UsedRange.Rows.Count - 1
If lig < 5 Then Exit Sub 'début en ligne 5
With Sh.Range(Sh.Cells(5, 5), Sh.Cells(lig, 5))
  Me.Names.Add "matrice", .Value 'nom défini par une matrice
  .FormulaArray = "=LN(matrice=""" & lettre & """)"
  .Value = .Value
  .EntireRow.Sort .Cells(1), Header:=xlNo 'tri pour accélérer la suppression
  On Error Resume Next
  .SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete
  .Value = lettre
  Me.Names("matrice").Delete
End With
End Sub
Le fichier :

http://cjoint.com/?CIjwz5o9NhG

A+
 
Re : demande de modif sur du VBA

(c) CJoint.com, 2012
Bonsoir,

voila je pense que tu as trouvé comment solutionner mon Problème, une dernière demande s'il te plait, je te fais parvenir mon dossier à jour, veux tu avoir la gentillesse de faire la mise a jour avec la nouvelle formule et me le retourner, j'essaie depuis que j'ai reçu ton message et je n'y arrive pas (suis pas doué en VBA)
Encore mille merci
Amitiés
@+
 
Re : demande de modif sur du VBA

Bonjour sev31130, le forum,

Il faut mettre les lettres P T O à droite, en AG2:AG4 et non pas en S2:S4.

De plus il est mieux de copier uniquement les valeurs :

Code:
F.[F4:R4] = F.[T1:AF1].Offset(Application.Match(lettre, F.[AG2:AG4], 0)).Value
La macro :

Code:
Sub Copie(F As Worksheet, Sh As Worksheet)
If Not Sh.Name Like F.Name & "?" Then Exit Sub
Dim lettre As String, mem, lig As Long
lettre = Right(Sh.Name, 1)
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'à cause des liaisons...
mem = F.[F4:R4] 'mémorise
F.[F4:R4] = F.[T1:AF1].Offset(Application.Match(lettre, F.[AG2:AG4], 0)).Value
F.Cells.Copy Sh.[A1] 'pour les formats
Sh.UsedRange = F.UsedRange.Value 'supprime les formules
F.[F4:R4] = mem
lig = Sh.UsedRange.Row + Sh.UsedRange.Rows.Count - 1
If lig < 5 Then Exit Sub 'début en ligne 5
With Sh.Range(Sh.Cells(5, 5), Sh.Cells(lig, 5))
  Me.Names.Add "matrice", .Value 'nom défini par une matrice
  .FormulaArray = "=LN(matrice=""" & lettre & """)"
  .Value = .Value
  .EntireRow.Sort .Cells(1), Header:=xlNo 'tri pour accélérer la suppression
  On Error Resume Next
  .SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete
  .Value = lettre
  Me.Names("matrice").Delete
End With
End Sub
Par ailleurs il y avait la même fonction dans Module5 Module7 Module8, j'ai supprimé Module7 et Module8.

Je joins ton fichier compressé, il me semble maintenant correct.

Edit : j'ai repositionné la séparation des volets en ligne 4.

A+
 

Pièces jointes

Dernière édition:
Re : demande de modif sur du VBA

bonjour,


je n'osais te demandais de mettre les lettres P G O à droite, mais tu l'a fais c'est super

Voila tu à eu la gentillesse, de bien vouloir reprendre le dossier, et cela mérite beaucoup que dis-je quand je dis beaucoup je ne saurais quantifier le nombre de "merci" ...tu peux être fier d'avoir réussi à réaliser le projet, alors que je donne des mauvaises analyses ou que je e sais pas définir ce que je voudrais....enfin bref en un mot
C'est super, cela marche très bien , tu as fais les modifications qui s'imposaient, tout baigne.

Encore une fois BRAVO et MERCI

Amitiés
yves
@+

(PS je repasserais ou si tu peux me répondre est-il possible de calculer dans une colonne par exemple le nombre de colonnes coloriés, si c'est faisable et si c'est une matricielle peux tu me la donner)
 
- 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

  • Question Question
Réponses
32
Affichages
766
Réponses
4
Affichages
566
Réponses
5
Affichages
245
  • Question Question
Microsoft 365 agrandir la liste
Réponses
21
Affichages
661
  • Résolu(e)
Microsoft 365 problème
Réponses
19
Affichages
916
  • Question Question
Autres Vba
Réponses
4
Affichages
227
  • Question Question
Microsoft 365 couleur et ligne
Réponses
6
Affichages
293
Réponses
2
Affichages
171
Réponses
2
Affichages
187
Réponses
3
Affichages
278
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…