macro automatisation compliquée

  • Initiateur de la discussion JJ
  • Date de début
J

JJ

Guest
Bonsoir,
Grâce à vous, mon fichier de test est terminé, même si ça n'a pas été évident quant à certaines formules...(n'est-ce pas Monique? formules matricielles notamment !)
Je vous remercie tous.

J'aurais besoin maintenant d'une macro VBA qui 'automatise' mon fichier test:
Principe:

-feuille 1: page de saisie et de test
-feuille2 de A1 à F...(suivant le nombre , dans mon ex joint, F4)
-Feuille 3 : résultats copiés si test OK (dans mon ex, F2)

Déroulement de la macro:

1- Copie Feuille2 A1:F1 vers Feuille1 R10:W10
2- validation, calcul
3- 2 cas possibles: si T10 (?) est rouge, le test est mauvais, on recommence avec Feuille2 A2:F2 copiés en Feuille1 R10:W10 et à nouveau validation, calcul..
si T10 (?) est vert, le test est ok, la série R10:W10 est alors copiée en Feuille3 A1:F1
et ainsi de suite jusqu'à la fin des données en Feuille 2

C'est pas évident à expliquer, aussi je joins un petit exemple avec 4 données, dont 2 avec le test ok ( ? vert) copiés en Feuille3 (les 2 autres avec le test mauvais ( ? rouge) ne sont copiés nulle part)

Si Qqun peut m'aider à écrire cette macro d'automatisation?
Merci
Bonne soirée
JJ [file name=automat.zip size=47310]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/automat.zip[/file]
 

Pièces jointes

  • automat.zip
    46.2 KB · Affichages: 36
J

JJ

Guest
Bonsoir à tous,
personne ne m'a repondu our m'aider, j'ai commencé à écrire qques lignes de macro (copy-paste, color....) mais je bute sur les boucles et conditions , alors si qqun pouvait me aire avancer...
je joins mon nouveau fichier avec un debut de macro?
merci
JJ
 

ChTi160

XLDnaute Barbatruc
Salut jj
j'ai fait une macro qui transfert les données mais je n'arrive pas a exécuter ton format conditionnel
je regarderai demain soir.
je te joint la procèdure qui transfert , le tout car je n'arrive pas a récuperer l'indice du format conditionnel en plus je ne comprends pas le Calcul enfin voila un début
je ne te met pas le fichier mais la macro qui bien sur ne teste, que la couleur de fond de la cellule T10
Code:
Sub tesTransfert()
Dim TabTemp As Variant
Dim Tablo() As Variant
Dim derlgn As Integer, L As Integer, x As Integer
Dim C As Byte
Application.ScreenUpdating = False
With Worksheets('Feuil2')
 TabTemp = .Range('A1:F' & .Range('A65536').End(xlUp).Row).Value
End With
With Worksheets('Feuil1')
  For L = 1 To UBound(TabTemp, 1)
    For C = 1 To UBound(TabTemp, 2)
      .Cells(10, 10 + C) = TabTemp(L, C)
    Next
   Calculate
 Select Case .Range('T10').Interior.ColorIndex 'ici je n'arrive pas a récuperer _
 la couleur du Format conditionnel
 Case Is = 2 'ici je teste le fond mais il est blanc lol _
 donc il transfert tout
ReDim Preserve Tablo(UBound(TabTemp, 2), x) 'on dimensionne le tablo
'on charge normalement les lignes qui sont bonnes
For C = 0 To UBound(TabTemp, 2) - 1
  Tablo(C, x) = TabTemp(L, C + 1)
Next
x = x + 1
 Case Else
   .Range('K10:P10').ClearContents 'si pas bon on efface sans copier dans le tablo
End Select
Next
End With
With Worksheets('Feuil3') 'ici on colle le tablo dans la feuille 3
  .Range('A1').CurrentRegion.ClearContents 'on efface d'abord
  .Range('A1').Resize(UBound(Tablo, 2) + 1, UBound(Tablo, 1)) = Application.Transpose(Tablo)
End With
Application.ScreenUpdating = True
End Sub
je verrai demain soir si je trouve a moins que quelqu'un pofine lol
Bonne nuit
 
J

JJ

Guest
BonjourJean Marie et merci je vais tester ta macro.
Le format conditionnel en T10 est deja ecrit: le principe est que, des quetu as copié la serie en R8-W8, Excel utilise les formules que j'ai ecrites sur cette feuille et affiche en T10 une couleur verte ou rouge.
(il n'y a pas a s'occuper du format conditionnel)
Par contre il faudrait peut etre une temporisation apres la copie de la serie et avant de tester la couleur en T10 pou laisser le temps a Excel de calculer ses formules e afficher la couleur du resultat (2 sec max)
merci
Bonne journé
 
J

JJ

Guest
Bonsoir,
j'ai simplifié pour le principe en travaillant sur une seule feuille 1:

-données à tester colonnes Z à AE (6 col d'une centaine de lignes)
-copie de la première serie (ligne 1) vers R8:W8 (toujours ces cellules)
-analyse et resultat par une couleur de motif en cellule T10 (rouge on passe a une 2ème série , vert on copie cette serie en AJ:AO)

voici un code 'bidouillé' à partir d'une macro fournie:

a=0
ligne=1
While a = 0
For i = 26 To 31 'données Z:AE
a = Cells(ligne,i).Value 'copie valeurs 1ere ligne Z à AE
Cells(ligne+7,i-8).Value = a 'collage valeurs en R8:W8
next i
If Cells(10,20).Interior.colorIndex = 50 Then 'test couleur verte en T10
For j=26 To 31
b = Cells (ligne,j).Value
Cells(ligne,j+10).Value = b 'collage car test ok en AJ1:AO1
Next j
End If
Wend
ligne=ligne+1
End Sub

la macro marche mais uniquement pour la 1ere ligne, le 'ligne=ligne+1' j'arrive pas a le faire fonctionner??
Bonne soirée
JJ
 

ChTi160

XLDnaute Barbatruc
Salut JJ
arff j'ai beau passer en revue l'ensemble des ligne de la feuille 1 dans la plage R8:W8 la cellule T10 ne change pas de couleur et de plus je me demande si l'on peut récuperer la couleur de la cellule en cas de format conditionnel via Interior.colorIndex
explique moi le format conditionnel vérifie diverses cellules qui changent de valeur en fonction de la plage R8:W8 j'ai la macro pour faire ce que tu demandes mais pas de format conditionnel Lol
peux tu me mettre le fichier avec la macro que tu as bidouillé merci d'avance
 
J

JJ

Guest
Bonsoir, ouvre mon fichier joint 'automat.zip'
1- prend les 6 premiers nb en feuille2 ligne 1 et copie/colle les en feuille1 en R8-W8
la cellule T10 restera rouge (normal c'est mon test interne de formule)
2 - prend la 2eme serie de 6 chiffres ligne 2 en feuille2 et copie/colle les en R8: W8 et T10 devendra vert!
cette suite est donc a conserver et a copier
et ainsi de suite...

J'ai modifié maintenant , tout se passe en feuille1 pour eviter ces aller retours feuille1 et 2 et 3
j'ai expliqué les emplacements dans mon precedent post et la macro fonctionne sauf qu'elle ne passe pas à la serie suivante, elle ne teste que la premiere serie en ligne 1 .
Bonne soirée
merci
 

ChTi160

XLDnaute Barbatruc
Re JJ
non je suis resté sur le fichier de départ le fait de changer de feuille n'est pas un problème
mais je viens de trouver une Macro de Fréderic sigonneau qui est sensé renvoyé l'indice de la couleur du format conditionnel ci dessous le lien
Ce site n'existe plus
peux tu me mettre la formule du format conditionnel de ta cellule T10
merci d'avance
 

ChTi160

XLDnaute Barbatruc
Arfff je relis ton dernier message et je me dis que je ne comprends plus rien arrffff les fichier joints c'est super Lol
tu pratiques comment tes lignes test tu les passe bien en revue dans les cellules R8:W8 ce qui est sensé déclencher le format conditionnel et ainsi lancer l'archivage ou non de ces lignes de la feuille 2 en feuille 3
arfff
bonne fin soirée
 
J

JJ

Guest
Re Jean Marie,
La formule conditionnelle n'importe pas pour la macro car la feuille est 'truffée' de cellules et, en copiant 6 nombres en R8 W8 excel fait son travail tout seul.
-si les conditions que j'ai mises sont OK alors T10 devient vert
-si les conditions mauvaises: rouge

La macro ne fait qu'AUTOMATISER ces copier/coller, c'est tout:
elle prend 6 nombres, les copie/colle en R8W8 (excel calcule et renvoie une couleur en T10) puis si vert (ca se fait tout seul) copie/colle pour garder cette serie, si rouge on passe à une nouvelle serie pour nouveau test.

la macro AUTOMATISE simplement.
Regarde la macro que j'ai essayé de bidouiller, elle ne fait que ca, sauf que la boucle fonctionne pas , elle ne teste que les premier 6 nombres (mais ca fonctionne, 50 est le code couleur vert, 3 le rouge) et ne passe pas a la ligne 2
(probleme avec ligne=ligne+1 certainement mal placé?)
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 726
Membres
110 552
dernier inscrit
jasson