Macro VBA copier coller plusieurs cellules sous conditions avec mise en forme

audric30

XLDnaute Nouveau
Bonsoir,

Je suis débutant sur Excel et je n'arrive pas à réaliser une macro qui je pense est assez simple.

Je dispose de 2 feuilles, je souhaite via une boucle vérifier dans la première feuille dans une colonne préalablement choisie si dans la case il y a du texte, si c'est le cas je veux copier plusieurs cellules de la même ligne mais non contiguës et les coller dans un ordre différent dans une autre feuille tout en conservant la mise en forme initiale.

voici mon exemple :

feuille "synthèse" dans la colonne "AG", ligne "7" je veux vérifier dans la cellule s'il y a du texte (ou alors si elle est vide peu importe). Si c'est le cas je veux copier les cellules de la ligne "7" des colonnes "AG, AF, AH, AI" et les coller avec leur mise en forme dans la feuille "suivi" dans la ligne 5 colonne 2. Et réitérer dans la feuille "synthèse" jusqu'à la ligne 500.

Je précise que ces cellules que je colle comportent des formules de type concaténation, et je préfèrerai copier coller la valeur seulement en conservant la mise en forme, je n'ai pas besoin de conserver la formule.
 

Yaloo

XLDnaute Barbatruc
Re : Macro VBA copier coller plusieurs cellules sous conditions avec mise en forme

Bonsoir Audric et bienvenu,

En effet, ça ne doit pas être bien compliqué mais le mieux serait de fournir un fichier avec des données bidons mais réalistes quand même.
Avec les données que tu as dans ta feuille "synthèse" et ce que tu veux dans ta feuille "suivi".

A+
 

audric30

XLDnaute Nouveau
Re : Macro VBA copier coller plusieurs cellules sous conditions avec mise en forme

Bonsoir,

Merci pour la rapidité de réaction, en pièce jointe un exemple qui reflète exactement ce que j'aimerais.
J'ai rajouter aussi un code couleur que j'ai besoin de récupérer.
Merci


Bonsoir Audric et bienvenu,

En effet, ça ne doit pas être bien compliqué mais le mieux serait de fournir un fichier avec des données bidons mais réalistes quand même.
Avec les données que tu as dans ta feuille "synthèse" et ce que tu veux dans ta feuille "suivi".

A+
 

Pièces jointes

  • modèle pour macro.xlsm
    10.7 KB · Affichages: 583
  • modèle pour macro.xlsm
    10.7 KB · Affichages: 628
  • modèle pour macro.xlsm
    10.7 KB · Affichages: 651

Yaloo

XLDnaute Barbatruc
Re : Macro VBA copier coller plusieurs cellules sous conditions avec mise en forme

Re,

Vois avec le fichier ci-dessous

A te relire
 

Pièces jointes

  • modèle pour macro.xlsm
    21.8 KB · Affichages: 1 523
  • modèle pour macro.xlsm
    21.8 KB · Affichages: 1 460
  • modèle pour macro.xlsm
    21.8 KB · Affichages: 1 300
Dernière édition:

job75

XLDnaute Barbatruc
Re : Macro VBA copier coller plusieurs cellules sous conditions avec mise en forme

Bonjour audric30, Yaloo, le forum,

Comme il s'agit essentiellement d'intervertir les colonnes, voici une autre manière de faire :

Code:
Private Sub CommandButton1_Click()
Dim plage As Range, cel As Range, decal, i As Byte
Application.ScreenUpdating = False
Set plage = Sheets("Synthèse").[B4].CurrentRegion
Set cel = [C5]
decal = Array(4, 1, 0, 2, 3)
Rows("5:" & Rows.Count).Clear 'RAZ
For i = 0 To UBound(decal)
  Copie plage.Columns(i + 1), cel.Offset(, decal(i)), i = 0
Next
cel.Offset(, 4) = "Code couleur"
'---supression des lignes vides (facultatif)---
On Error Resume Next
cel.Resize(plage.Rows.Count).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
End Sub

Sub Copie(colonne As Range, cel As Range, efface As Boolean)
colonne.Copy cel 'pour copier les formats
cel.Resize(colonne.Rows.Count) = IIf(efface, "", colonne.Value) 'valeurs
End Sub
Remarquer que la macro Copie est paramétrée.

Fichier .xls joint.

A+
 

Pièces jointes

  • modèle pour macro(1).xls
    41 KB · Affichages: 681
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Macro VBA copier coller plusieurs cellules sous conditions avec mise en forme

Salut Job,

Du grand art, comme d'habitude.

A chaque fois, c'est avec plaisir que je regarde tes codes, en les comprenant sur le moment, mais impossible de les reproduire.

Merci
 

audric30

XLDnaute Nouveau
Re : Macro VBA copier coller plusieurs cellules sous conditions avec mise en forme

Merci pour vos réponses.

J'ai un nouveau besoin et vous allez sans doute pouvoir m'aider.
Je suis désolé de vous solliciter autant mais je suis vraiment à la rue sur les macros...

Je souhaite classer des risques selon leur pondération.
Dans une case je nomme un risque R1-100 par exemple, je le pondère avec une gravité "forte" et une probabilité "moyenne" ce qui donne une criticité "inacceptable" (par une formule de test logique), jusque là tout va bien.
Ensuite j'aimerai extraire ces risques pour les classer dans un tableau croisé. (Voir pièce jointe)
En gros pour la probabilité "forte" on attribue la "ligne 4" et pour la probabilité moyenne la "colonne E" ce qui donne la "cellule E4" et je souhaiterais coller les risques à l'intérieur de celle-ci et les concaténé dans la même cellule avec un retour à la ligne. (Quelque chose de lisible et de facilement interprétable)
 

Pièces jointes

  • Classeur1.xlsx
    16.1 KB · Affichages: 370
  • Classeur1.xlsx
    16.1 KB · Affichages: 419
  • Classeur1.xlsx
    16.1 KB · Affichages: 452

Discussions similaires

Réponses
8
Affichages
520

Statistiques des forums

Discussions
299 850
Messages
1 979 570
Membres
206 779
dernier inscrit
Bahlou