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

Table et recopie

  • Initiateur de la discussion Initiateur de la discussion Guy55
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

Guy55

Guest
Bonjour a tout le monde,
Pour avancer dans mon projet, j'aurais besoin de votre aide sur les conditions dans la macro suivante.
J'aimerais vérifier pour chaque ligne d'une table, si date du jour (aujourd'hui) > de 20 jours a la date colonne de la colonne 13 et dans la colonne 20 il y a la lettre "C", "N" ou "A" et dans la colonne 21 si elle est coloriée en vert ou en rouge
3 Conditions :
si date aujourd'hui = date colonne 13 + 20 jours ET
si colonne 20 ="C" ET
si colonne 21 = rouge
ALORS :

recopier la ligne correspondante dans l'onglet "Certification" (3ème feuille) a partir de la cellule A2 et colorier en vert la colonne 14 de la ligne correspondante.
La macro serait lancée à l'aide d'un bouton virtuel pour gérer les conditions.

J'ai attaché le fichier exemple.
D'avance un beau merci a tout le monde.
 

Pièces jointes

Re : Table et recopie

Bonjour,

Je n'ai pas tout saisi. et je ne vois pas trop ton probème. vu que dans ta macro export. tu sembles déjà avoir tous les éléments

si date aujourd'hui = date colonne 13 + 20 jours ET
si colonne 20 ="C" ET
si colonne 21 = rouge

if (Date= .cells(i,13)+20) and (.cells(i,20)="C") and (.cells(i,21).interior.colorindex=3) then
.....
 
Re : Table et recopie

Bonjour tout le monde,
Merci vgendron.
Voila mon avancement, j'ai donc créeé 2 boucles FOR NEXT. Le programme me dit qu'il manque un NEXT.
Je ne sais pas non plus comment reposter mon fichier excell avec les modif que je viens de faire.
Merci

Hasco,
Je suis désolé, sans doute trop d'empressement croyant n'avoir pas été assez clair.

Guy55


Sub Export()
'Déclaration des worksheets
Dim i&, F As Worksheet, G As Worksheet
Set F = Sheets("recupération")
Set G = Sheets("certification")
'Boucle qui teste la date et fait la recopie dans l'onglet récupération
With Sheets("table1")
For i = 3 To .Cells(.Rows.Count, 3).End(3).Row
'If .Cells(i, 3) = Date Then
If .Cells(i, 3) <= Date And .Cells(i, 19).Value <> "Env" Then
Application.Union(.Cells(i, 3), .Cells(i, 6), .Cells(i, 7), .Cells(i, 9)).Copy _
F.Cells(Application.WorksheetFunction.Max(F.Cells(F.Rows.Count, 1).End(3)(2).Row, 3), 1)
With .Cells(i, 19)
.Value = "Env"
.Interior.ThemeColor = xlThemeColorAccent3
.Interior.TintAndShade = -0.249946592608417
End With
'Boucle qui teste la date et fait la recopie dans l'onglet certification
If (Date = .Cells(i, 13) + 20) And (.Cells(i, 20) = "C") And (.Cells(i, 21).Interior.ColorIndex = 3) Then
Application.Union(.Cells(i, 3), .Cells(i, 6), .Cells(i, 7), .Cells(i, 20), .Cells(i, 21)).Copy _
G.Cells(Application.WorksheetFunction.Max(G.Cells(G.Rows.Count, 1).End(3)(2).Row, 3), 1)
With .Cells(i, 19)
.Value = "Payé"
.Interior.ThemeColor = xlThemeColorAccent3
.Interior.TintAndShade = -0.249946592608417
End With
End If
Next i
End With
End Sub
 
Re : Table et recopie

Dans ta version 3, il y a deux fois Next i
et une erreur de syntaxe (sur deux lignes) pour la copie des données dans le range G

Code:
Sub Export()
'Déclaration des worksheets
Dim i&, F As Worksheet, G As Worksheet
Set F = Sheets("recupération")
Set G = Sheets("certification")
'Boucle qui teste la date et fait la recopie dans l'onglet récupération
With Sheets("table1")
     For i = 3 To .Cells(.Rows.Count, 3).End(3).Row
         'If .Cells(i, 3) = Date Then
         If .Cells(i, 3) <= Date And .Cells(i, 19).Value <> "Env" Then
             Application.Union(.Cells(i, 3), .Cells(i, 6), .Cells(i, 7), .Cells(i, 9)).Copy _
             F.Cells(Application.WorksheetFunction.Max(F.Cells(F.Rows.Count, 1).End(3)(2).Row, 3), 1)
             With .Cells(i, 19)
                 .Value = "Env"
                 .Interior.ThemeColor = xlThemeColorAccent3
                 .Interior.TintAndShade = -0.249946592608417
             End With
        
 'Boucle qui teste la date et fait la recopie dans l'onglet certification
            If (Date = .Cells(i, 13) + 20) And (.Cells(i, 20) = "C") And (.Cells(i, 21).Interior.ColorIndex = 3) Then
                Application.Union(.Cells(i, 3), .Cells(i, 6), .Cells(i, 7), .Cells(i, 20), .Cells(i, 21)).Copy _
                G.Cells(Application.WorksheetFunction.Max(G.Cells(G.Rows.Count, 1).End(3)(2).Row, 3), 1)
                With .Cells(i, 21)
                    .Value = "Payé"
                    .Interior.ThemeColor = xlThemeColorAccent3
                    .Interior.TintAndShade = -0.249946592608417
                End With
            End If
        End If
      
      Next i
End With
End Sub
 
Re : Table et recopie

Bonjour,
J'ai enlevé le 2 ème next i.
Au départ, la première boucle fonctionnait bien avec recopie dans worksheet récupération.
J'ai intégré la formule de test if (Date= .cells(i,13)+20) and (.cells(i,20)="C") and (.cells(i,21).interior.colorindex=3) then et recopié le reste en prenant soin de changer la déclaration de la worksheet par G ( certification).
Est-ce une erreur de parenthèse (syntaxe) ou ce serait mieux de séparer les deux boucles For - Next.

Merci beaucoup
Guy55
 
Re : Table et recopie

euh. je n'ai pas vu cette ligne (la mienne) dans ton fichier.. est ce que tu peux reposter ta version finale qui te pose problème.
c'est la qu'on pourra voir la syntaxe exacte..
 
Re : Table et recopie

Bonjour Si,
Ca a l'air de marcher.
Je voudrais l'imbriquer dans mon autre macro ( originale dans mon fichier GénérercouleurV3).
J'ai besoin de garder mes deux onglets.

Un grand merci
 
Re : Table et recopie

Bonsoir tout le monde du forum,

Dans la macro, je n'arrive pas à trouver ou est l'erreur de syntaxe dans les lignes des onglets G "certification" et aussi pourquoi j'ai une erreur sur la boucle For - Next i.

En fonction de cela, j'aimerais intégrer le test sur couleur rouge que Si m'a proposé.

Merci à tout le monde
 

Pièces jointes

Re : Table et recopie

Bonjour le forum,
il te manque un end if..
juste avant la ligne de commentaire (enfin.. je pense que c'est la qu'il faut la mettre)
end if
'Boucle qui teste la date et fait la recopie dans l'onglet certification


PS: l'intérêt de l'indentation ( décalage des blocs de code) c'est justement pour identifier ces fin de boucles / conditions manquantes

bon et puis. il faut aussi apprendre à utiliser le mode pas à pas (touche F8) pour débugger ta macro..
set G=sheets("certification")
ca ne marche pas car le nom de ta feuille n'est pas correct:
il faut écrire
set G=sheets("Certification") avec la majuscule

erreur suivante (on a pas encore commencé les tests "with...."
F as Worksheet, G as Woksheets..

etc etc...
 
Dernière édition:
Re : Table et recopie

Bonjour le forum,
Merci vgendron
J'ai corrigé la déclaration de la deuxième feuille et aussi le problème des boucles.
Malgré tout, je n'arrive pas a colorier et surtout faire la recopie sur cette deuxième feuille.
J'attache le fichier pour une meilleure compréhension.
Si quelqu'un pouvait m'aider.

Comme toujours, vous m'êtes d'un grand support.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
230
Réponses
7
Affichages
179
Réponses
6
Affichages
346
  • Question Question
Microsoft 365 MFC dans tableau
Réponses
2
Affichages
362
Réponses
12
Affichages
647
Réponses
4
Affichages
321
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…