Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Effacer certaines cellules avec une macro

2 réponses
Avatar
ELDER
Bonjour à tous,

Et oui je progresse, je progresse encore un peu plus chaque jour mais
seulement grâce à votre aide !!! Et aujourd'hui je voudrais qu'une âme
charitable m'aide une fois de plus dans ma tâche. J'ai un fichier excel (
d'ailleurs toujours le même depuis trois mois ) qui doit être remis à zéro
une fois par semaine après le report des chiffres dans une case spécifique.
Je m'explique en langage Excelien ce sera plus facile pour vous:

J'ai une feuille qui contient des données de A1 à A10 Dans la case A11 le
resultat est la somme de A1 à A10. En fin de semaine on reporte A11 dans une
case A12 et l'on remet A1 à A10 à 0 ( et donc A11 se trouve lui aussi à 0 )
On conserve ainsi le résultat de la semaine dans A12. La remise à Zero se
fait automatiquement (il n'y a pas de macro c'est par rapport à une liaison,
en fin de semaine on remet un fichier vierge pour la mise à zéro )

Selon la quantité à produire ( il s'agit d'un suivi de production ) les
comptes peuvent être reporté une 3ème fois an A13 voir une 4ème fois en A14
( maximum ). Le résultat final est inscrit en A16.

On souhaite donc automatisé le report de la case A11 dans la case a12
avant la mise à zéro des cases a1 à a10. Dans le cas ou la case soit déjà
remplie il faut reporter sur la case d'après.

Peut on faire une macro qui exécuterais ce report automatiquement en
cliquant simplement sur un bouton ? ( avec une demande de confirmation )


Merci à tous

2 réponses

Avatar
AV
A tester car tout ne me semble pas clair (notamment ce qui doit figurer en A16)

En A11 :
=SI(NBVAL(A1:A10)=0;"";SOMME(A1:A10))

Macro à affecter à un bouton :

Sub Remise_Zéro()
On Error Resume Next
x = [A11:A14].Find("").Address
If Err.Number <> 0 Then
MsgBox "Plus de report possible !"
Exit Sub
End If
alert = MsgBox("Voulez-vous..blabla", vbCritical + vbOKCancel, "A zéro")
If alert = vbCancel Then Exit Sub
Range(x) = [A11]: [A16] = [A11]: [A1:A10] = ""
End Sub

AV
Avatar
ELDER
Merci cette formule à l'air d'être la solution du problème. Pour A16 ça
correspond à la somme de A11 + A12+A13 Enfin de compte c'est la somme
totale. J'aurais dû la mettre en A15 pour que ce soit plus explicite.

Merci de m'avoir donnée un peu de votre temps ( je sais qu'il est
précieux ). Je vais utiliser votre formule et au besoin l'adapter.

Merci encore !

"AV" a écrit dans le message de
news:bo23g6$tt3$
A tester car tout ne me semble pas clair (notamment ce qui doit figurer en
A16)


En A11 :
=SI(NBVAL(A1:A10)=0;"";SOMME(A1:A10))

Macro à affecter à un bouton :

Sub Remise_Zéro()
On Error Resume Next
x = [A11:A14].Find("").Address
If Err.Number <> 0 Then
MsgBox "Plus de report possible !"
Exit Sub
End If
alert = MsgBox("Voulez-vous..blabla", vbCritical + vbOKCancel, "A zéro")
If alert = vbCancel Then Exit Sub
Range(x) = [A11]: [A16] = [A11]: [A1:A10] = ""
End Sub

AV