Copier des cellules vers plusieurs feuilles

ABDELHAK

XLDnaute Occasionnel
Bonjour à tous,

Je suis novice en vba et je cherche de l’aide pour résoudre mon problème, merci d’avance.
Je vous ai déjà envoyé un « projet », mais il est + que probable que celui-ci était illisible. C’est la raison pour laquelle, je me permets de vous réenvoyé mon projet sous une autre présentation.
J’espère qu’elle sera plus lisible.

Présentation :

Fichier de 51 feuilles
La première feuille se nomme : CN
De la 2ième à la 51ième les feuilles se nomment : A, B, C,… , AW, AX

TAB 1 (feuille CN)

1ière feuille contient un tableau ( B4 : AY34 ) soit 1500 cellules.
Les cellules ont comme données des chiffres de 1 à 100 dont 20 cellules ont un fond vert.
Les colonnes sont au nombre de 50 soit 30 cellules par colonne :
( B4 : B34 ), ( C4 : C34 ), ( D4 : D34 ), ( E4 : E34 ), …,( AY4 : AY34 )

TAB 2 (feuille A) à TAB 51 (feuille AX)

De la feuille A à la feuille AX, soit 50 feuilles et 50 tableaux.
Elles ont toutes le même format
Exemple :
TAB 2 = feuille A ( B6 : AB45 ) soit 1080 cellules
Les cellules sont fusionnées (2 lignes = 1cellule du tableau)
exemple : la cellule B6 à B7 = 1 cellule du tableau
la cellule B8 à B9 = 1 cellule du tableau, etc.
le tableau « réel » = 540 cellules
Les cellules n’ont aucunes données (elles doivent en recevoir)
Les colonnes sont au nombre de 27 :
( B6 : B45 ), ( C6 : C45 ), ( D6 : D45 ), ( E6 : E45 ), …,( AY6 : AY45 )

BUT DE LA MACRO
Exemple :
TAB 1 (feuille CN) = ( B4 : AY34 ) soit 1500 cellules
Les colonnes sont au nombre de 50 soit 30 cellules par colonne :
( B4 : B34 ), ( C4 : C34 ), ( D4 : D34 ), ( E4 : E34 ), …,( AY4 : AY34 )
Chaque colonne de TAB 1 (feuille CN) correspond à une feuille de TAB 2 (feuille A) à TAB 51 (feuille AX)
Chaque cellule de TAB 1 (feuille CN) correspond une cellule de TAB 2 (feuille A) à TAB 51 (feuille AX)
But de la macro

A chaque colonnes de TAB 1 ( B4 : B34 ), ( C4 : C34 ), ( D4 : D34 ), ( E4 : E34 ), …,
( AY4 : AY34 ) correspond à une feuille.
Exemple :
Colonne 1 ( B4 : B34 ) de TAB 1 = 1ière colonne de TAB 2 (feuille A) des cellules
( B6 : B45 )
Colonne 2 ( C4 : C34 ) de TAB 1 = 1ière colonne de TAB 3 (feuille B) des cellules
( B6 : B45 )
Colonne 3 ( D4 : D34 ) de TAB 1 = 1ière colonne de TAB 4 (feuille C) des cellules
( B6 : B45 )
Colonne 4 ( E4 : E34 ) de TAB 1 = 1ière colonne de TAB 5 (feuille D) des cellules
( B6 : B45 )
…………………………………………
Colonne 49 ( AX4 : AX34 ) de TAB 1 = 1ière colonne de TAB 50 (feuille AW)
des cellules ( B6 : B45 )
Colonne 50 ( AY4 : AY34 ) de TAB 1 = 1ière colonne de TAB 51 (feuille AX)
des cellules ( B6 : B45 )

Disons que la cellule B4 à un fond vert, je veux que la macro exécute un copier coller vers la 1ière colonne de TAB 2 (feuille A) soit la cellule B6. Elle doit garder son fond vert et remplacer la valeur de B4 par le chiffre 1.

Tout cela est illustré dans la pièce jointe. Elle est incomplète sinon le fichier dépasse le poids autorisé. Du moins, c’est ce que j’ai compris.

Sur ce 1000 merci et à +.
 

Pièces jointes

  • C_N_ELAB.xls
    283 KB · Affichages: 49
  • C_N_ELAB.xls
    283 KB · Affichages: 48
  • C_N_ELAB.xls
    283 KB · Affichages: 46

job75

XLDnaute Barbatruc
Re : Copier des cellules vers plusieurs feuilles

Bonjour ABDELHAK,

Merci d'avoir répondu au fil du lien, maintenant on peut continuer.

Voyez le fichier joint avec cette macro dans ThisWorkbook :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim c As Range, i As Byte
Set c = Sheets("CN").[B4:AY4].Find(Sh.Name, , xlValues, xlWhole)
If Not c Is Nothing Then
  Sh.[B6:B65].ClearContents
  Sh.[B6:B65].Interior.ColorIndex = xlNone
  For i = 1 To 30
    If c.Offset(i).Interior.ColorIndex = 4 Then
      Sh.Cells(4 + 2 * i, 2).Interior.ColorIndex = 4
      Sh.Cells(4 + 2 * i, 2) = 1
    End If
  Next
End If
End Sub
La macro se déclenche chaque fois qu'on active une feuille.

A+
 

Pièces jointes

  • C_N_ELAB(1).xls
    347 KB · Affichages: 43

ABDELHAK

XLDnaute Occasionnel
AIDE "Private Sub Workbook"

BONJOUR

J'ai bien reçu votre ligne de code et merci.
J'essaye de l'exécuter mais cele ne marche pas.
J'imagine que je ne sais pas m'y prendre avec "Private Sub Workbook_SheetActivate(ByVal Sh As Object)".
Faut-il que je crée une nouvelle macro ? Ou y a-t-il une autre procédure ?
Si vous voulez bien m'aiguiller sur ce sujet.
Dans tous les cas, mille merci parce que je suis agréablement surpris de votre réponse.

Amicalement votre ABDELHAK
 

job75

XLDnaute Barbatruc
Re : Copier des cellules vers plusieurs feuilles

Bonjour ABDELHAK, le forum,

Mon post #3 est clair et j'ai bien précisé la macro doit se trouver.

Alors relisez-le attentivement.

Et accrochez-vous car je vais continuer avec des choses plus compliquées.

A+
 

job75

XLDnaute Barbatruc
Re : Copier des cellules vers plusieurs feuilles

Re ABDELHAK,

Je vous disais qu'il allait falloir vous accrocher...

En effet ma boule de cristal me dit que le présent fil est la suite logique de celui-ci :

https://www.excel-downloads.com/threads/deplacement-cellules.199738/

Alors voyez ce fichier (2) avec les 4 macros Initialiser Déplacer Rétablir RemplirFeuilles dans Module1.

RemplirFeuilles est paramétrée, elle n'apparaît donc pas dans la liste des macros.

Vous êtes novice en VBA mais il me sera difficile de vous expliquer les macros en détail.

En effet elles ne sont pas simples mais c'est vous qui avez choisi un problème compliqué.

A vous de tester et retester pour voir et essayer de comprendre comment tout ça fonctionne.

A+
 

Pièces jointes

  • C_N_ELAB(2).xls
    402.5 KB · Affichages: 60

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 184
dernier inscrit
Di Martino