Bonjour, je me présente, Eric
Je travail actuellement à la conception d'un logiciel, j'ai découvert un peu par la suite que de créer ses macro avait un intérêt des moins négligeable. Je demande un peu d'aide pour mettre fin à mon projet, ce qui donnera lieu à quelques post.
Je vais essayer de rédiger au mieux mes questions.
Donc, j'ai un fichier excel dans lequel je recense des données régulièrement, disons tout les 15 jours.
Ces données sont rentrées sur la ligne 1, j'ai réussi à faire un bouton nommé "archivage" qui permet de copier ces données rentrées sur des lignes inférieures et à chaque fois que je rentre une nouvelle ligne, elle sera archivé à la suite de la précédente,... L'action se finit avec l'effacement de la ligne 1 ou j'ai rentré initialement mes données.
Ca se complique : imaginons que les données archivées sont dans les cases A2 A3 A4 A5 A6 A7 A8, une colonne à côté calcul les différences entre deux cellules, supposons que l'opération se fasse dans la colonne G, on aura : G3 = A3-A2, G4 = A4-A3 et ainsi de suite.
les données contenues dans la colonne A sont des temps. A la fin de la colonne G est effectué une somme de cette dernière, cette somme est comparé avec une valeur de consigne. Je souhaite que lorsque la somme des cellules en G est supérieur à ma valeur de consigne, les cellule contenant une valeur différente de 0 soit effacées (cellule toujours dans la colonne G), je considère ça comme une remise à 0 de mon compteur horaire.
Cette étape est importante dans mon document car cette remise à 0 déclenchera d'autres action dans d'autres fichiers.
Ce que j'ai déjà fais : alors en fait, j'ai voulu effacer les cellule en différenciant les valeurs différentes de 0, ça n'avait pas marché, ça m'affaçait tout, j'ai donc opté pour un code de couleur, c'est à dire que chaque cellule étant supérieur à 0 se colore en vert (code de couleur : 4), et essayer de créer une formule qui finalement efface les cellules de couleur verte lorsque la somme de G >= consique (cellule à part). Ma formule doit comporter des erreurs, et c'est la que je demande votre aide.
C'est la première fois de ma vie que je touche au basic, je pense que ça peut se comprendre vite, mais je n'arrive pas à m'en sortir tout seul. Merci bien Eric
P.S : Le fichier fait 235 ko, je l'envoie très volontier via une boîte mail.
Sub ArchCEXTRUDEUSE()
Worksheets("EXTRUDEUSES").Range("B1:J1").Copy
lig = 1
Do While Worksheets("EXTRUDEUSES").Range("B4").Cells(lig, 1) <> ""
lig = lig + 1
Loop
Worksheets("EXTRUDEUSES").Range("B" & lig + 3).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("EXTRUDEUSES").Range("B1").Copy
Worksheets("COMPTEURS").Range("G2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("EXTRUDEUSES").Range("C1").Copy
Worksheets("COMPTEURS").Range("I2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("EXTRUDEUSES").Range("D1").Copy
Worksheets("COMPTEURS").Range("K2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("EXTRUDEUSES").Range("E1").Copy
Worksheets("COMPTEURS").Range("M2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("EXTRUDEUSES").Range("F1").Copy
Worksheets("COMPTEURS").Range("O2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("EXTRUDEUSES").Range("G1").Copy
Worksheets("COMPTEURS").Range("Q2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("EXTRUDEUSES").Range("H1").Copy
Worksheets("COMPTEURS").Range("S2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("EXTRUDEUSES").Range("I1").Copy
Worksheets("COMPTEURS").Range("U2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("EXTRUDEUSES").Range("J1").Copy
Worksheets("COMPTEURS").Range("W2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("B1").Select
Selection.ClearContents
Range("C1").Select
Selection.ClearContents
Range("D1").Select
Selection.ClearContents
Range("E1").Select
Selection.ClearContents
Range("F1").Select
Selection.ClearContents
Range("G1").Select
Selection.ClearContents
Range("H1").Select
Selection.ClearContents
Range("I1").Select
Selection.ClearContents
Range("J1").Select
Selection.ClearContents
If K535 >= K536 - 24 And c.Interior.ColorIndex = 4 Then
For Each c In Range("$K$5:$K$534")
c.ClearContents
c.Interior.ColorIndex = xlNone
Next c
End If
c'est l que ça coince
Range("B1").Select
End Sub
Je travail actuellement à la conception d'un logiciel, j'ai découvert un peu par la suite que de créer ses macro avait un intérêt des moins négligeable. Je demande un peu d'aide pour mettre fin à mon projet, ce qui donnera lieu à quelques post.
Je vais essayer de rédiger au mieux mes questions.
Donc, j'ai un fichier excel dans lequel je recense des données régulièrement, disons tout les 15 jours.
Ces données sont rentrées sur la ligne 1, j'ai réussi à faire un bouton nommé "archivage" qui permet de copier ces données rentrées sur des lignes inférieures et à chaque fois que je rentre une nouvelle ligne, elle sera archivé à la suite de la précédente,... L'action se finit avec l'effacement de la ligne 1 ou j'ai rentré initialement mes données.
Ca se complique : imaginons que les données archivées sont dans les cases A2 A3 A4 A5 A6 A7 A8, une colonne à côté calcul les différences entre deux cellules, supposons que l'opération se fasse dans la colonne G, on aura : G3 = A3-A2, G4 = A4-A3 et ainsi de suite.
les données contenues dans la colonne A sont des temps. A la fin de la colonne G est effectué une somme de cette dernière, cette somme est comparé avec une valeur de consigne. Je souhaite que lorsque la somme des cellules en G est supérieur à ma valeur de consigne, les cellule contenant une valeur différente de 0 soit effacées (cellule toujours dans la colonne G), je considère ça comme une remise à 0 de mon compteur horaire.
Cette étape est importante dans mon document car cette remise à 0 déclenchera d'autres action dans d'autres fichiers.
Ce que j'ai déjà fais : alors en fait, j'ai voulu effacer les cellule en différenciant les valeurs différentes de 0, ça n'avait pas marché, ça m'affaçait tout, j'ai donc opté pour un code de couleur, c'est à dire que chaque cellule étant supérieur à 0 se colore en vert (code de couleur : 4), et essayer de créer une formule qui finalement efface les cellules de couleur verte lorsque la somme de G >= consique (cellule à part). Ma formule doit comporter des erreurs, et c'est la que je demande votre aide.
C'est la première fois de ma vie que je touche au basic, je pense que ça peut se comprendre vite, mais je n'arrive pas à m'en sortir tout seul. Merci bien Eric
P.S : Le fichier fait 235 ko, je l'envoie très volontier via une boîte mail.
Sub ArchCEXTRUDEUSE()
Worksheets("EXTRUDEUSES").Range("B1:J1").Copy
lig = 1
Do While Worksheets("EXTRUDEUSES").Range("B4").Cells(lig, 1) <> ""
lig = lig + 1
Loop
Worksheets("EXTRUDEUSES").Range("B" & lig + 3).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("EXTRUDEUSES").Range("B1").Copy
Worksheets("COMPTEURS").Range("G2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("EXTRUDEUSES").Range("C1").Copy
Worksheets("COMPTEURS").Range("I2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("EXTRUDEUSES").Range("D1").Copy
Worksheets("COMPTEURS").Range("K2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("EXTRUDEUSES").Range("E1").Copy
Worksheets("COMPTEURS").Range("M2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("EXTRUDEUSES").Range("F1").Copy
Worksheets("COMPTEURS").Range("O2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("EXTRUDEUSES").Range("G1").Copy
Worksheets("COMPTEURS").Range("Q2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("EXTRUDEUSES").Range("H1").Copy
Worksheets("COMPTEURS").Range("S2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("EXTRUDEUSES").Range("I1").Copy
Worksheets("COMPTEURS").Range("U2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Worksheets("EXTRUDEUSES").Range("J1").Copy
Worksheets("COMPTEURS").Range("W2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Range("B1").Select
Selection.ClearContents
Range("C1").Select
Selection.ClearContents
Range("D1").Select
Selection.ClearContents
Range("E1").Select
Selection.ClearContents
Range("F1").Select
Selection.ClearContents
Range("G1").Select
Selection.ClearContents
Range("H1").Select
Selection.ClearContents
Range("I1").Select
Selection.ClearContents
Range("J1").Select
Selection.ClearContents
If K535 >= K536 - 24 And c.Interior.ColorIndex = 4 Then
For Each c In Range("$K$5:$K$534")
c.ClearContents
c.Interior.ColorIndex = xlNone
Next c
End If
c'est l que ça coince
Range("B1").Select
End Sub