OVH Cloud OVH Cloud

Incrémenter sur deux feuilles

4 réponses
Avatar
Alba
Bonjour,

J'ai juste un petit soucis d'incr=E9mentation.

J'ai un bouton qui sur une feuille 1 m'inc=E9rmente mon num=E9ro de 1 en
B12, et je suis ravie !
C'est donc :
Dim Compteur As String
Range("B12").NumberFormat =3D "######"
Compteur =3D Range("B12").Value
Range("B12").Value =3D Compteur + 1

Et j'ai aussi :

Une feuille 2 avec un bouton qui incr=E9mente de 1 en B8 avec :

Dim Compteur As String
Range("B8").NumberFormat =3D "######"
Compteur =3D Range("B8").Value
Range("B8").Value =3D Compteur + 1

Mais ce que j'aimerais c'est :

Si j'active le bouton de la feuille 1 il faut aussi incr=E9menter le
chiffre en B8 de la feuille 2

.=2E.et invers=E9ment

Si j'active le bouton de la feuille 2 il faut aussi incr=E9menter le
chiffre en B12 de la feuille 1

Donc il me manque un =E9pisode !!!

4 réponses

Avatar
Pierre Fauconnier
Bonjour

Il te suffit dès lors d'une seule macro, associée à chacun de tes boutons.
Sub Increment()
Feuil1.Range("b12") = Feuil1.Range("b12") + 1
Feuil2.Range("b8") = Feuil2.Range("b8") + 1
End Sub

En ajoutant éventuellement tes lignes de mise en format.
Note que Feuil1 et Feuil2 représentent les noms VBA des feuilles, et non pas
les noms d'onglet. De cette façon, si l'utilisateur modifie le nom d'un des
onglets, la macro fonctionne toujours.
Tu peux trouver les noms VBA des feuilles dans l'explorateur de projet, et
tu peux les modifier pour qu'ils soient plus explicites.

Okl?

--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Alba" a écrit dans le message de news:

Bonjour,

J'ai juste un petit soucis d'incrémentation.

J'ai un bouton qui sur une feuille 1 m'incérmente mon numéro de 1 en
B12, et je suis ravie !
C'est donc :
Dim Compteur As String
Range("B12").NumberFormat = "######"
Compteur = Range("B12").Value
Range("B12").Value = Compteur + 1

Et j'ai aussi :

Une feuille 2 avec un bouton qui incrémente de 1 en B8 avec :

Dim Compteur As String
Range("B8").NumberFormat = "######"
Compteur = Range("B8").Value
Range("B8").Value = Compteur + 1

Mais ce que j'aimerais c'est :

Si j'active le bouton de la feuille 1 il faut aussi incrémenter le
chiffre en B8 de la feuille 2

...et inversément

Si j'active le bouton de la feuille 2 il faut aussi incrémenter le
chiffre en B12 de la feuille 1

Donc il me manque un épisode !!!
Avatar
Alba
Merci de ta réponse Pierre

Je crois bien que je m'emmêle les pinceaux avec les noms
Mais il y a aussi sur ce boutons une autre commande que je voudrais
garder.

Je place ta solution au dessus avec le nom de feuilles mais il me dis
une grossièrté !

"Erreur de compilation End Sub attendu"
Il y est le "End sub"....tout en bas !!!

Est-ce que je dois laissé le nom "Feuil1" et le nom "Feuil9" avant ou
pas ???

Suis un peu perdue là !

Voilà ce que j'ai pour ce bouton :



'Nouveau N° facture et efface les données pour nouvelle facture


Private Sub CommandButton3_Click()

Sub Increment()

Feuil1("Facture dentiste").Range("b12") = Sheets("Facture
dentiste").Range("b12") + 1
Feuil9("Facture long traitement").Range("b8") = ("Facture long
traitement").Range("b8") + 1


Range("D9:F13").Select
Selection.ClearContents
ActiveWindow.SmallScroll Down:=6
Range("A20").Select
ActiveCell.FormulaR1C1 = "informe que ses honoraires pour soins
donnés du au "
Range("A22").Select
ActiveWindow.SmallScroll Down:
Range("A29:C41").Select
Selection.ClearContents
Range("F46").Select
Selection.ClearContents
Application.Run "'Modèle facture Dentiste .xls'!Aveclabo"
Application.Run "'Modèle facture Dentiste .xls'!Sanslabo"

ActiveWindow.ScrollRow = 21
ActiveWindow.ScrollRow = 20
ActiveWindow.ScrollRow = 19
ActiveWindow.ScrollRow = 18
ActiveWindow.ScrollRow = 17
ActiveWindow.ScrollRow = 16
ActiveWindow.ScrollRow = 14
ActiveWindow.ScrollRow = 13
ActiveWindow.ScrollRow = 12
ActiveWindow.ScrollRow = 11
ActiveWindow.ScrollRow = 10
ActiveWindow.ScrollRow = 9
ActiveWindow.ScrollRow = 8
ActiveWindow.ScrollRow = 7
ActiveWindow.ScrollRow = 6
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 3
ActiveWindow.ScrollRow = 2
ActiveWindow.ScrollRow = 1
Range("D2").Select


End Sub
Avatar
Pierre Fauconnier
Bonjour

La grossièreté vient du fait que tu as "sub increment" après "Private
Sub"...
De plus, tu dois avoir des lignes en rouge, car il y a des problèmes de
syntaxe.

sheets("Facture dentiste").range("b12") utilise le nom de l'onglet
Feuil1.range("b12") utilise le nom VBA de la feuille.
Tu dois utiliser l'un ou l'autre, mais pas les deux...

Avec les noms d'onglets, tu auras
Private Sub CommandButton3_Click()

sheets("Facture dentiste").Range("b12") = Sheets("Facture
dentiste").Range("b12") + 1
sheets("Facture long traitement").Range("b8") = sheets("Facture long
traitement").Range("b8") + 1
...
...
End Sub
Dans ce cas, si l'utilisateur change le nom de l'onglet, ta macro plantera
puisqu'elle ne trouvera pas l'onglet...

Avec les noms VBA, tu auras
Private Sub CommandButton3_Click()

Feuil1.Range("b12") = Feuil1.Range("b12") + 1
Feuil9.Range("b8") = Feuil9.Range("b8") + 1
...
...
End Sub
Dans ce cas, si l'utilisateur modifie le nom de l'onglet, la macro
fonctionnera puisqu'elle n'utilise pas le nom de l'onglet mais bien le nom
VBA de la feuille.

Après, tu utilises le code propre à chaque bouton.

Tu peux aussi utiliser la macro Increment au sein des autres macros.
Dans un module standard, tu crées
Sub Increment()
feuil1.range("b12")þuil1.range("b12")+1
feuil9.range("b8")þuil9.range("b8")+1
end sub

Et dans la maro évènementielle du bouton
Private Sub CommandButton3_Click()
Increment
...
...
End Sub
Les ... représentant la suite de ton code, propre à chaque bouton

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci
Avatar
Alba
"Tu dois utiliser l'un ou l'autre, mais pas les deux... "

D'acc ! Ouf dis donc ! Je commence a m'y retrouver

Ceci est donc bien plus logique tu as raison :
Private Sub CommandButton3_Click()

Feuil1.Range("b12") = Feuil1.Range("b12") + 1
Feuil9.Range("b8") = Feuil9.Range("b8") + 1

Un grand merci Pierre, c'est vraiment gentil