MFC & Macro copie : Problème

zourite

XLDnaute Junior
Bonjour à tous,

J'utilise une macro qui copie une plage1 (formule + format) source, sur une autre plage2 qui peut varier. Depuis que j'ai ajouter des MFC sur la plage1 source j'ai un problème..

Mon problème survient lorsque la plage2 est trop importante, la copie ne s'effectue pas et j'obtiens ce message d'erreur:

"La selection est trop grande" lors du débuggage, la zone surlignée est: "ActiveSheet.Paste"

J'ai essayé de reproduire un exemple, mais je n'arrive pas à reprovoquer ce problème..

Auriez-vous une idée sur le moyen que je devrai utiliser pour contourner ce problème?

Merci d'avance.
 

zourite

XLDnaute Junior
Re : MFC & Macro copie : Problème

Re,

Etant donnée que ma demande n'est pas très précise, je vais tenter de la compléter:

J'ai joint un fichier explicatif:

Pour chaque colonne (N:S) la mise en forme conditionnelle est programmée en fonction du nom de la colonne M:

*Si et(Alex; Pierre; Marie; Gerorge;) alors, la mise en forme des valeurs de Alex Pierre Marie George Joselin Pierrot Michel Seb Jean Edouard = Noir
*Si George >0 alors la mise en forme des valeurs de Alex Pierre Marie George Joselin Pierrot Michel Seb Jean Edouard = Orange
*Toute les valeurs en face de Seb doivent etre d'une police Bleu, et de taille 11.

(Vous trouverez ces conditions dans le format conditionnel du tableau sauf pour la dernière condition qui n'est pas automatique mais manuelle)


Je pense que vu mon problème, ma solution nécessite une automatisation VBA.
Dans quel cas, il serait important de définir le périmètre d'action de la macro pour la mise en forme:
Ligne début définie en B2
Ligne fin définie en B3
Colonne début définie en B4
Colonne fin définie en B5

J'ai donc recréé un tableau vierge de mise en forme.


Voilà tout type d'aide et bon apprendre !

Merci d'avance
 

Pièces jointes

  • zourite MFC.xls
    188 KB · Affichages: 44
  • zourite MFC.xls
    188 KB · Affichages: 57
  • zourite MFC.xls
    188 KB · Affichages: 52
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : MFC & Macro copie : Problème

Bonjour.
J'ai déjà eu ce problème de selection trop grande. J'ai du effectuer le traitement colonne par colonne.

La voie royale pour enregistrer lignes et colonnes début et fin de plage sous une forme à usage de macros se sont les noms de plages. Rien ne sort de mes seules mains sans que tout ce qui est utilisé autre part porte un nom.

Cordialement
 

zourite

XLDnaute Junior
Re : MFC & Macro copie : Problème

Bonjour Dranreb,

Merci pour les infos.

  • Au niveau de la selection trop grande, ma macro traite colonne par colonne :
    Range(Cells(101, Range("D4")), Cells(Range("D2"), Range("D4"))).Select
    ActiveSheet.Paste

    on peut voir ci-dessus que la valeur colonne (D4) est la meme..
    Le truc c'est que la plage copier = 10 cellules (en colonne) alors que la plage où s'effectue le collage = 10*un grand nombre variable...

  • Au niveau de l'enregistrement ligne & colonne début & fin, je ne comprend pas trop, il faudrait que je nomme ces 4 cellules définissant le périmètre, ou que je nomme la plage de la zone du périmètre? Car cette plage étant variable je ne sais pas comment faire =S

    J'ai peut etre mal compris, dans quel cas, désolés^^
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : MFC & Macro copie : Problème

Nommez "Tablo" la plage à traiter.
Si ses dimensions varient par ajout de lignes ou colonnes devant la dernière et non après, ou par suppression en en préservant au moins 2, la référence sera toujours corrigée automatiquement.
À+
 

zourite

XLDnaute Junior
Re : MFC & Macro copie : Problème

Re,

J'ai donc nommer "Tablo" la plage dans laquelle la Mise en forme est attendue, et "Nom" la plage dans laquelle se trouve les nom cités plus haut déterminant la mise en forme.

Ai je bien fait?

Merci beaucoup pour le temps consacré à ces conseils.
 

Pièces jointes

  • zourite MFC.xls
    188 KB · Affichages: 32
  • zourite MFC.xls
    188 KB · Affichages: 46
  • zourite MFC.xls
    188 KB · Affichages: 43

Dranreb

XLDnaute Barbatruc
Re : MFC & Macro copie : Problème

Oui en gros c'est bien ce que je voulais dire, encore que les références de vos nom débordent du tableau ce que personnellement je ne fais jamais. Si la nécessité de passer par l'insersion d'une ligne avant la dernière pour créer une nouvelle dernière ligne est trop contraignante, je préfère encore installer une macro qui déctecte une tentative de taper au delà et facilite l'insertion.
Désormais vous pouvez écrire des chose du genre:
VB:
Dim Col As Range
For Each Col In Feuil2.[Tablo].Columns
   Col.Value =  ... etc
 

zourite

XLDnaute Junior
Re : MFC & Macro copie : Problème

Re,

Donc là ça commence à se corser ...humm
Ca peut paraître ridicule mais, je peux donc désormais utiliser dans quel but?

Dim Col As Range
For Each Col In Feuil2.[Tablo].Columns
Col.Value = ... etc

Dans le but de copier le format conditionnel de la plage "source" ou de créer une mise en forme conditionnelle VBA?

merci
 

Dranreb

XLDnaute Barbatruc
Re : MFC & Macro copie : Problème

Pour tout !

Mais je n'ai absolument rien compris à la logique de vos MEFC très hétéroclites et je soupçonne vaguement que si c'était la seule nécessité de passer par des macros, il faille tout repenser depuis le début.

À+
 

zourite

XLDnaute Junior
Re : MFC & Macro copie : Problème

Ok !

En me relisant, je comprend ce que vous voullez dire. J'ai très mal expliquer la chose. Je vais faire une nouvelle tentative:

Actuellement, j'utilise des MEFC. On peut voir un extrait de mon tableau sur la plage: M:S. J'ai nommé ce tableau: tablo_old.
En M, il y a une colonne comprenant des Nom (que j'ai nommé Nom_old) allant de A à J.
La colonne M est fixe. La disposition des noms ne change jamais. Les 10 noms forment 1 groupe.

Pour chaque Periode (colonne), chaque groupe de 10 Noms correspond à une MEFC:
- La ligne H : doit dans tous les cas être de police bleu et de taille 11.
- Si D>0 , alors le groupe entier (les 10 cellules) de la periode doivent être teinte en Orange
- Si et(A,B,C,D,E,F)<=0 , alors le groupe entier de cette periode doit etre teint en noir.


Jusqu'à maintenant, j'avais configuré un "groupe type" qui me permettait de copier le format pour le coller partout dans le reste des colonnes. Or, depuis peu j'ai eu le bug énoncé plus haut. Voilà pourquoi je souhaite passer au VBA...

J'ai joint un nouveau fichier: (je précise qu'il y a deux tableau) un contenant les MEFC (l'ancien tableau) et un nouveau comprenant uniquement les valeurs qui pourrait éventuellement servir de test.

Merci d'avance pour votre aide.
 

Pièces jointes

  • Copie de zourite MFCe2.xls
    190 KB · Affichages: 32

Dranreb

XLDnaute Barbatruc
Re : MFC & Macro copie : Problème

MmmmOui...

Vous n'avez que 7 groupes après tout pourquoi n'avoir pas mis la même MEFC aux 10 lignes de chaque groupe ?
En effet les numéros de lignes n'étant pas précédés de "$" elles sont toutes différentes en relatif puisqu'elles s'appuyent sur les mêmes plages verticales mais vue chacune depuis une ligne différente ??
Enfin moi je me serais arrangé pour calculer un code couleur en la colonne tout à droite et j'aurais mis d'un coup la même formule conditionnelles simple à tout le monde (en relatif aussi alors).
Bonne soirée.
 

zourite

XLDnaute Junior
Re : MFC & Macro copie : Problème

Re,

Ce n'est malheureusement qu'un exemple, mon cas réel comprend beaucoup plus de groupes et de colonnes.

En effet, la MEFC d'un même groupe est la même pour les dix lignes de son groupe. Cependant, d'un groupe à l'autre la MEFC doit être différente. Il faut que chaque groupe traite le MEFC de la meme facon. D'ou ma première technique qui fut un simple copier/coller de format sans les $ (pas très dur à configurer et efficace..) sauf que ca ne marche plus comme expliqué plus haut.. =/

Bon je vais continuer de chercher, mais je pense que vu la taille et le poids de mon fichier, je n'échapperai pas à un MEFC via VBA :X

merci et bonne soirée !
 

Discussions similaires

Statistiques des forums

Discussions
312 412
Messages
2 088 196
Membres
103 763
dernier inscrit
p.michaux