VBA tri + MFC = soucis

Bonjour,

Je suis débutant en VBA. Cependant, c'est en forgeant que l'on devient forgeron...

J'essaye d'apporter quelques indicateurs supplémentaires à un fichier déjà existant.

Ce fichier est composé d'une macro qui regroupe plusieurs fichiers (centralisation des données).

Mon but est de faire un tri du plus grand au plus petit avec une mise en forme conditionnelle (+ de 50 rouge ; moins de 50 vert).

J'ai utilisé l'outils d'enregistreur de macro pour faire cela et le tout fonctionne. Ma plage de données se trouve dans une autre feuille (feuille2) et ma macro en + de faire le tri et la MFC, elle alimente les cellules de la feuille1.

Ma macro est en partie fonctionnelle mais quand j'efface mes données de la feuille1 et que je revalide ma macro elle ne prend pas en compte les trigrammes associés à mes valeurs en feuille2...

Avez-vous une solution à mon problème ?

Merci par avance.

7classeur1.xlsm (22.43 Ko)

Bonsoir,

sans aller plus loin dans la conception du fichier et du pourquoi du comment, vous pouvez faire ceci :

mettre : Range("A4:B12").Value = Sheets("Feuil2").Range("A4:B12").Value en lieu et place de :

    Range("B4").Select
    ActiveCell.FormulaR1C1 = "=Feuil2!RC"
    Range("B5").Select
    ActiveCell.FormulaR1C1 = "=Feuil2!RC"
    Range("B6").Select
    ActiveCell.FormulaR1C1 = "=Feuil2!RC"
    Range("B7").Select
    ActiveCell.FormulaR1C1 = "=Feuil2!RC"
    Range("B8").Select
    ActiveCell.FormulaR1C1 = "=Feuil2!RC"
    Range("B9").Select
    ActiveCell.FormulaR1C1 = "=Feuil2!RC"
    Range("B10").Select
    ActiveCell.FormulaR1C1 = "=Feuil2!RC"
    Range("B11").Select
    ActiveCell.FormulaR1C1 = "=Feuil2!RC"
    Range("B12").Select
    ActiveCell.FormulaR1C1 = "=Feuil2!RC"
    Range("B13").Select

En fait vous copiez les valeurs de la feuille 2 sur la feuille 1 et votre code de tri fait le reste.

Si des données sont effacée en colonne A le code va les recréer...

@ bientôt

LouReeD

Bonsoir,

Tout d'abord merci pour votre réponse rapide.

C'est ce que je voulais faire. Du coup j'ai voulu augmenter la difficulté et me prendre une cellule bien précise de la feuille2

Range("B4").Value = Sheets("Feuil2").Range("B4").Value
   Range("B5").Value = Sheets("Feuil2").Range("B6").Value
   Range("B6").Value = Sheets("Feuil2").Range("B8").Value
   Range("B7").Value = Sheets("Feuil2").Range("B10").Value
   Range("B8").Value = Sheets("Feuil2").Range("B12").Value
   Range("B9").Value = Sheets("Feuil2").Range("B14").Value
   Range("B10").Value = Sheets("Feuil2").Range("B16").Value
   Range("B11").Value = Sheets("Feuil2").Range("B18").Value
   Range("B12").Value = Sheets("Feuil2").Range("B20").Value

Mais j'ai le même problème quand j'appuie 2 fois sur le bouton de ma macro, le trigramme ne correspond pas au bon chiffre de la feuille 2...

7classeur1.xlsm (22.43 Ko)

Bonsoir,

tant que vous ne copierez pas la colonne A avec la colonne B alors il y aura erreur !

A chaque valeur de la colonne B de la feuille 2 collée sur la feuille 1 il faut copier coller le trigramme qui va avec, hors sur votre code vous ne copiez que la colonne B.

Voir le fichier joint :

6loureed.xlsm (20.84 Ko)

@ bientôt

LouReeD

Bonjour,

il y a à dire sur ton fichier...

Déjà met la MFC sur la feuille et pas par macro. Elle y est et elle y reste.

Là tu en ajoutes 2 à chaque fois, tu en es à 44 !!! Dans 3 mois tu ne pourras plus te servir de ton fichier tellement il sera devenu lent.

Et si ton but est de mettre tes indicateurs en ordre décroissant (supposition, car à aucun moment tu n'expliques ton besoin. Ce que tu aurais dû faire), et bien copie toute la plage d'un coup et trie ensuite.

Ta macro devient :

Sub val_cell()
    [A4:B12].Value = Sheets("Feuil2").[A4:B12].Value
    [A4:B12].Sort Key1:=[B4], Order1:=xlDescending, Header:=xlNo
End Sub

eric

Bonjour,

@ LouReeD => ta proposition est bien l'effet recherché, merci

Par contre j'ai vu que tu avais rajouté cette ligne de code au début elle sert à quoi ?

Application.ScreenUpdating = False

@ eriiic => ça tombe bien que tu parles de faire la MFC sans macro car quand j'ai testé sur le vrai fichier (MFC avec macro) ça m'a peté une autre MFC sur la même feuille mais qui elle n'est pas en macro. Est ce normal ? Ça m'a peté également le format d'un de mes tableaux alors que dans mon code j'ai pas indiqué du tout de toucher à ce tableau....

Merci.

Désolé d'être nul mais j'ai une autre question ...

Admettons que ma donnée à copier n'est en B4 de ma feuille 2 mais plutôt en B6... j'ai suivi le raisonement c'est à dire :

Range("A4:B4").Value = Sheets("Feuil2").Range("A4:B6").Value

La cellule qui correspond à mon trigramme est vide sur la feuille1... Est-ce une autre syntaxe à appliquer ??

Merci pour votre aide.

Bonjour,

comme apparemment tu n'as pas testé ma proposition, ou bien tu as testé et ça ne convient pas (le saura-t-on un jour ?) et que tu dois continuer ligne à ligne je te laisse continuer avec loureed.

eric

Bonjour, eriiic,

Ici le merci est pour moi !?

Les posts se suivent et ne se ressemblent pas !!!

En fait dans Range("A4:B4") cela "sélectionne" les cellules allant de A4 à B4, donc si vos données sont en ligne 6 et colonne A et colonne B il faut mettre A6:B6... non ?

@ bientôt

LouReeD

feuille 2 :

cellule fusionnées A4 et A5 dont la valeur est "BSI"

colonne B sur la feuille 2 j'ai B4= 5 et B5=30

Maintenant sur la feuille 1 je veux en A4=BSI et en B4 = la valeur de B5 de la feuille 2 soit 30.

Et ça j'arrive pas

Bonsoir,

c'est le même problème ou vous avez ajouté une donnée supplémentaire ?

Du coup ce n'est pas juste une recopie de cellule pour cellule !

@ bientôt

LouReeD

Bonsoir,

Oui j'ai rajouté une donnée, mais du coup le code pour mettre la valeur de B5 de la feuille 2 dans la cellule B4 de la feuille1 ça donnerait quoi ?

Sachant que je veux toujours mon trigramme correspondant même après mon filtre.

Merci par avance.

Bonsoir,

y a t il une utilité à ce que les cellules du même trigramme soient fusionnées ?

Si ce n'est qu'esthétique, il y a des astuces pour cacher les valeurs répétitives.

@ bientôt

LouReeD

Bonjour,

Merci j'ai réussi grâce à votre aide

Merci @ vous

@ bientôt

LouReeD

Rechercher des sujets similaires à "vba tri mfc soucis"