Mon entreprise utilise Excel pour effectuer le suivi des inspections et de la maintenance des extincteurs portables. J'essaie d'y ajouter des fonctionnalités, mais je n'ai pas la moindre idée de la façon de le faire. Je ferai de mon mieux pour expliquer en quoi j'ai besoin d'aide:
Les trois feuilles auront les mêmes en-têtes de colonne dans la rangée 1. Sur les première et deuxième feuilles du cahier (intitulées «Mensuel» et «Annuel», respectivement), j’utilise la mise en forme conditionnelle pour colorer les cellules des colonnes Y et AC en fonction de ces informations. les valeurs déterminées par une formule (Jaune si le calcul renvoie une valeur inférieure à 90, Rouge si la valeur renvoyée est 0 ou un nombre négatif).
Ce que je voudrais qu'une macro fasse, c'est de copier toute la ligne de la colonne A à la colonne AD dans une troisième feuille (intitulée "Maint Due"). Il serait également utile que ce processus soit automatisé de manière à ce que, chaque fois que les valeurs des colonnes Y et AC soient modifiées dans les feuilles "Mensuelle" ou "Annuelle", les informations de la feuille "Maintien dû" soient automatiquement mises à jour (mais si je dois réexécutez la macro manuellement pour que cela se produise, ce n'est pas grave).
J'espère avoir expliqué ce que j'essaie de faire d'une manière qui a du sens pour quelqu'un et qui peut offrir de l'aide. J'ai très peu d'expérience en codage et cela fait 15 ans que je n'ai pas vraiment codé, alors je suis très rouillé. J'apprécie tout conseil ou assistance que les gens peuvent donner.!
MODIFIER:
Je n'ai jamais utilisé l'enregistreur de macros et je ne peux que comprendre comment créer une macro à copier-coller. Je n'y ai donc pas eu de chance. Après avoir fait quelques recherches supplémentaires et visionné des vidéos, je l'ai bricolé:
Sub Show_on_Maint()
x = 2
'Sets the starting row
Do While Cells(x, 2) <> ""
'Continue to evaluate until a blank cell is reached
If Cells(x, 25) <= 90 Then
'Evaluates the cell in column Y to determine if the value is less than or equal to 90
Sheets("Sheet1").Rows(x).Copy Sheets("Sheet6").Range("A2")
'Copies the row to the Maint Due sheet
Else
If Cells(x, 29) <= 90 Then
'Evaluates the cell in column AC to determine if the value is less than or equal to 90
Sheets("Sheet1").Rows(x).Copy Sheets("Sheet6").Range("A2")
'Copies the row to the Maint Due sheet
End If
End If
x = x + 1
Loop
End Sub
Lorsque je lance / débogue, je reçois une boucle sans erreur Do. Je pense que ma logique est bonne mais je n'ai pas assez d'expérience pour comprendre pourquoi cette erreur se produit.
EDIT: Fin manquante si avant x = x + 1
Maintenant, je reçois une erreur d'exécution 9 "Indice en dehors de la plage" à: Sheets("Sheet1").Rows(x).Copy Sheets("Sheet6").Range("A2")