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

XL 2016 Macro : pour chaque cellules de chaque feuilles etc.

elDucance↑

XLDnaute Nouveau
Bonjour,

j'ai créer un petit bout de code qui fonctionne , mais ne prend en compte qu'une seule feuille.
Or je souhaiterais que ce code balaye toutes les cellules de chaque feuilles du classeur ouvert.

Pouvez vous m'aider messieurs dames ?

voici le code pour les petits curieux :
VB:
Sub Macro1()

Dim cell As Range
For Each cell In Sheets("26févr20").Range("A1:A1000")
If cell.Interior.Color = 255 Then
cell.Copy
Sheets("Recap").Select
Sheets("Recap").Cells(Range("A65535").End(xlUp).Row + 1, 1).Select

ActiveSheet.Paste
End If


Next cell
End Sub

merci à vous, bien cordialement
paix sur vous

<config>Windows / Edge 84.0.522.59</config>
 
Dernière édition:

Nairolf

XLDnaute Accro
Salut,

Pour cela tu dois faire une boucle sur les onglets du classeur comme tu l'as fait sur les cellules, exemple :
VB:
Dim sh As Worksheet
For Each sh In ThisWorkbook.Sheets
MsgBox sh.Name
Next
 

Patrice33740

XLDnaute Impliqué
Bonjour,

Les Sheets ne contiennent pas toujours des Cells ou des Range :
Il ne faut boucler que sur les Worksheets !!!

Essaies comme ça :
VB:
Option Explicit
Sub Macro1()
Dim wsh As Worksheet
Dim cel As Range
Dim dst As Range
  Set dst = Worksheets("Recap").Cells(Rows.Count, "A").End(xlUp).Offset(1)
  For Each wsh In Worksheets
    For Each cel In wsh.UsedRange
      If cel.Interior.Color = 255 Then
        cel.Copy Destination:=dst
        Set dst = dst.Offset(1)
      End If
    Next cel
  Next wsh
End Sub
 

elDucance↑

XLDnaute Nouveau
Bonjour Nairolf, merci pour ta réponse.

Bon, j'ai du mal à l'intégrer dans mon code (doux euphémisme, je n'y comprends pas grand chose).
Je vais m'inspirer de ta signature et joindre un fichier et les explications de ce que je souhaiterais avoir.
Dans mon fichier, il y' aura une feuille pour chaque jour du mois. sur chaque feuille on retrouve les infos suivantes : date et code composants. Selon la valeur de code composants, les cellules date et code composants auront un fond rouge ou non (ça j'ai réussi à le faire).

Ce que je souhaiterais c'est, sur une nouvelle feuille nommée Recap pour afficher un tableau qui regrouperait toutes les valeurs des cellules associé à leur date respective.
C'est pourquoi j'avais pensé comme solution initiale : une macro qui balaie toutes les cellules en colonne A (date) de toutes les feuilles et une autre macro qui balaie toutes les cellules en colonne B (code) de toutes les feuilles. Les cellules avec fond rouge seraient collées sur al feuille recap.

malgré votre aide, je n'y arrive pas (pas encore tout du moins).

Que pensez vous de mon problème et de mon approche ?

désolé pour mon amateurisme..

PS : merci également à Patrice, je n'avais pas vu ta réponse avant mon second post...

Bonne journée
 

Pièces jointes

  • Suivi réception - test1.xlsm
    25.6 KB · Affichages: 10

Nairolf

XLDnaute Accro
Ne soit pas désolé par ton soit disant amateurisme, nous avons tous commencé par être débutant et c'est en se posant des questions et en cherchant de nouvelles solutions qu'on progresse.

De plus, on en apprend tous les jours, par exemple la remarque de Patrice me rappel que j'omets souvent les onglets comme les graphiques qui ne peuvent pas être traités comme les feuilles de données.

Concernant ton problème, j'ai creusé un peu pour voir ce qui ne fonctionnait pas, en fait une cellule n'est pas colorée par une MFC (la valeur de interior.color ne change pas), il ne s'agit que d'un affichage conditionnel et trouver quelle est la couleur de la MFC est plus complexe.
J'ai préféré tourner le problème de l'autre sens, j'ai créé une liste de comparaison sur laquelle se base la copie et les MFC.
 

Pièces jointes

  • Suivi réception - test1_Nairolf.xlsm
    26.6 KB · Affichages: 6

elDucance↑

XLDnaute Nouveau
Bonjour, et un grand merci à vous car cela fonctionne parfaitement !

Je ne savais pas que l'on pouvait intégrer des listes dans les MFC, et cela me semble bien pratique car il y a moins "d'objet" à manipuler.
Merci pour le partage de vos connaissance, car le VBA c'est vraiment un autre langage ...

Bonne journée !
 

elDucance↑

XLDnaute Nouveau

Re Nairolf,
en fait j'ai l'impression que la mise en forme conditionnelle que tu propose ne fonctionne pas.
J'ai copier collé à l'identique la règle de mise en forme sur une autre feuille, et les cellule avec des valeurs contenus dans la liste ne se mettent pas en rouge.
J'aimerais avoir une solution pour le surlignage en rouge car dans mon travail je dois partir de la feuille avec cellules remplies mais sans couleur pour ensuite identifier les composants et colorées les cellules et enfin regrouper tout les cellules rouges avec leur dates sur une autre feuille.

merci d'avance
 

Discussions similaires

Réponses
49
Affichages
1 K
Réponses
7
Affichages
528
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…