Copier des données selon la couleur des onglets (VBA)

Bonjour à tous,

Je suis encore à la recherche d'aide.

Je ne trouve absolument pas le code, j'ai le cerveau en ébullition, je ne comprends plus rien ...

Pourriez-vous m'aider SVP ???????

Voici mon problème :

Je cherche à copier des données de plusieurs onglets mais selon leurs couleurs (car les noms varient mais pas la couleur).

je veux que dans chaque onglet (à copier) :

la cellule E4 soit copier dans onglets "synthèse RDV" en colonne A

la cellule C10 soit copier dans onglets "synthèse RDV" en colonne B

la cellule J10 soit copier dans onglets "synthèse RDV" en colonne C

la cellule C12 soit copier dans onglets "synthèse RDV" en colonne D

la cellule J12 soit copier dans onglets "synthèse RDV" en colonne E

la cellule B46 soit copier dans onglets "synthèse RDV" en colonne C

Mais juste la valeur des cellules car certaines cellules sont fusionnées (notament E4, B46)

J'ai des messages d'erreurs à gogo, je sais plus...

Voici mon code (non terminé) :

 
Type syntheserdv
semaine As String
nom As String
rdv As String
periode As Variant
mag As String
End Type

Sub SYNT_rdv()

Dim R As syntheserdv
Dim feuille
Dim x As Object 
Dim colmag, coln, colsem, colp, colrdv, colautre As Integer

colmag = 1
coln = 2
colsem = 3
colp = 4
colrdv = 5
colautre = 6

 x = feuille.Tab.ColorIndex = RGB(0, 176, 240) ' mais déjà j'ai un message d'erreur sur cette ligne (424)
 'j'ai tous essayé string, variant, object , ect .... mais le message persiste 

    With ActiveWorkbook
        For Each feuille In .Sheets
            If x Then feuille.Move After:=Sheets(Sheets.Count)
        Next
      End With

If R.mag = Sheets(x).Range("E4").Value Then Sheets(x).R.mag.Copy
  Sheets("SYNTHESE RDV").[1].End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues

 If R.semaine = Sheets(x).Range("C10").Value Then Sheets(x).R.semaine.Copy
 Sheets("SYNTHESE RDV").[2].End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues

 If R.nom = Sheets(x).Range("J10").Value Then Sheets(x).R.nom.Copy
  Sheets("SYNTHESE RDV").[3].End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues

If R.rdv = Sheets(x).Range("C12").Value Then Sheets(x).R.rdv.Copy
Sheets("SYNTHESE RDV").[4].End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues

If R.periode = Sheets(x).Range("J12").Value Then Sheets(s).R.periode.Copy
Sheets("SYNTHESE RDV").[5].End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues

Aidez moi SVP

Merci par avance ...

mimi

Bonsoir mimi, le forum,

Au lieu de :

x = feuille.Tab.ColorIndex = RGB(0, 176, 240)

fais un essai avec :

x = feuille.Tab.Color = RGB(0, 176, 240)

Pas testé avec ton code.

Bonne soirée.

Bonjour,

Désolé pour la réponse tardive mais j'ai testé le code.

Maintenant, j'ai une erreur d’exécution "91".

Erreur d'objet ou variable de bloc "with" non definie

 For x = 7 To feuille.Tab.Color = RGB (0, 176, 240) 'erreur s'execute ici

    With ActiveWorkbook
        For Each feuille In .Sheets
            If x Then feuille.Move After:=Sheets(Sheets.Count)
        Next
      End With

J'ai rajouté un for X et next x pour effectuer une boucle en fin de macro (pour copier toutes les données de chaque onglet).


Désolé, petit oubli avant envoi

= Merci pour votre aide ..... passé et futur

Bonsoir mimi, le forum,

Déjà, je crois déceler une anomalie que je n'avais pas remarqué la première fois (je ne suis pas un pro en VBA mais j'apprends ) :

ta variable feuille est, je pense, mal déclarée : fais un test en changeant ta variable feuille comme suit :

Dim feuille As Worksheet

au lieu de :

Dim feuille

Si ce n'est pas cela, je n'hésites pas à laisser la main à plus expérimenté que moi en VBA.

Bonne soirée.

Bonsoir

Ton fichier serait utile

Tu notes ce que tu veux y faire

Pourquoi tu bouges les feuilles ?

feuille.Move After:=Sheets(Sheets.Count)

Pourquoi la J10 et la B46 dans la même colonne ( la C ) ?

Fais un exemple du résultat que tu veux obtenir

Bonjour,

Criscris effectivement tu as raison et d'ailleurs j'avais déjà rectifié cette erreur.

Banzai : Concernant le fait que les feuilles bougent c'est pour classer (mais à dire vrai, je n'en ai pas besoin, cette macro est un mix de plusieurs que j'ai trouvé sur le net).

Et oui, je me suis trompé la cellule B46 est dans la colonne F.

Voici mon fichier d'exemple :

Pour info, "Base retour" est un exemple des fichiers que je souhaites copier.


merci à vous

Bonjour

A tester

Banzai MERCI c'est exactement ce que je souhaitais !!!

effectivement rien a voir avec mon simili de code

Bonjour

Tant mieux que cela te convienne

A la prochaine question que tu poses, joins un fichier avec ce que tu as et ce que tu veux

Cela aidera la principale personne : Toi

Rechercher des sujets similaires à "copier donnees couleur onglets vba"