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

Recopie de formule

33 réponses
Avatar
albert
Bonjour

Dans la feuil1 la liste des 650 membres par ordre alphabétique et dans la
colonne BZ la formule qui somme leur présences aux activités.
(=somme(C3:BX3)
Lorsqu'on supprime un membre (une ligne), Excel ré-ajuste automatiquement
les formules de la colonne BZ. Aucun problème.
Lorsqu'on ajoute un membre (ajouter une ligne) la ligne insérée ne contient
pas la formule dans la colonne BZ, quand il a plusieurs ajouts, on utilise
la poignée de la cellule BZ3 t on la tire jusqu'au dernier membre (environ
650 variable) pour mettre à jour.

Y a t'il une commande qui pourrait faire ça.

Merci de vos suggestions

--
albertri-at-videotron.ca.invalid

10 réponses

1 2 3 4
Avatar
albert
Rebonjour
"Jacky" a écrit dans le message de groupe de discussion :
j9ditv$9ka$
Re..
tout va à merveille.


Alors c'est bien ;o))

Cependant, ceci ("select" inutile)
Range(Cells(3, LaColonne), Cells(LaLigne, LaColonne)).Select
Selection.FillDown


Corrigé

et ceci est inutile
Range(Cells(LaLigne, 2), Cells(LaLigne, LaColonne)).Select


Mon erreur, j'ai oublié d'effacer, après la correction sur la ligne
suivante.

Je n'éprouve aucune difficulté à renommée une procédure.


J'ai enregistré "Sub jj()" sur module1, j'ai travaillé "Sub jj2()" sur
module3 et cela fonctionnait en faisant F5, quand j'ai essaie avec Alt+F8 la
seule option que j'ai est "Créer", même chose avec jj3, jj4. Mais ok avec
"Sub jj_2()" ou "Sub Dejj()". Même problème avec Module1 supprimé. Je ne
comprend pas pourquoi jj2, jj3, jj4 ne sont pas acceptés.


néanmoins dans ton classeur exemple, il y a une procédure
(test_commentaire()) qui se trouve dans le module de la feuille.
Bien que cela n'entrave pas son fonctionnement, à la maintenance cela peut
induire en erreur.


Je l'ai déménagé sur un module régulier.

Merci

Respectueusement
Albert

--
albertri-at-videotron.ca.invalid
Avatar
albert
Bonjour
"albert" a écrit dans le message de groupe de discussion :
j9e5eg$tqq$

Rebonjour
"Jacky" a écrit dans le message de groupe de discussion :
j9ditv$9ka$
Re..
tout va à merveille.


Alors c'est bien ;o))

J'essaie de mettre au bas de la colonne "C" la formule
"=somme(C3:C&LaLigne&)" avant de faire "FillRight"
Plusieurs façons de concaténer ont été essayées sans résultat. Il faut
aussi penser à enlever les $ de 4$C$3:$C$650"

Je peux mettre danns la cellule soit "Plage.Address" ou "=somme(C3:C650)"
mais je n'ai pas réussi à concaténer les deux "=somme(b3:b&LaLigne&)". Ci
joint le code que j'utilise.

'-----------------
Sub jj()
Dim LaColonne As Long, LaLigne As Long, LaLigne2 As Long
LaLigne = Application.Match("VISITEURS", [b:b], 0) - 2
Set plage = Range(Cells(3, 3), Cells(LaLigne, 3))
'MsgBox Range(Cells(3, 3), Cells(LaLigne, 3)).Address
MsgBox plage.Address
LaLigne2 = Application.Match("Rencontres", [b:b], 0)
'MsgBox Cells(LaLigne2, 3).Address
'Cells(LaLigne2, 3).Value = "=somme("&Plage.Address&")"
'Cells(LaLigne2, 3).Value = "=somme(b3:b&LaLigne&)"
Cells(LaLigne2, 3).Value = "=somme(B3:B650)"
'Cells(LaLigne2, 3).Value = plage.Address
Cells(LaLigne2, 3).Select

End Sub
'---------------------

Votre assistance est bienvenue

--
albertri-at-videotron.ca.invalid
Avatar
Jacky
Re..
mais je n'ai pas réussi à concaténer les deux "=somme(b3:b&LaLigne&)".


Vba cause en anglais somme=sum

Pour y inscrire la formule
Cells(LaLigne2, 3).Formula = "=sum(c3:c" & LaLigne & ")"

Pour y inscrire le résultat de la formule
Cells(LaLigne2, 3).Value = Application.Sum(Range("c3:c" & LaLigne))


--
Salutations
JJ


"albert" a écrit dans le message de news: j9fh3b$dbv$
Bonjour
"albert" a écrit dans le message de groupe de discussion : j9e5eg$tqq$

Rebonjour
"Jacky" a écrit dans le message de groupe de discussion :
j9ditv$9ka$
Re..
tout va à merveille.


Alors c'est bien ;o))

J'essaie de mettre au bas de la colonne "C" la formule "=somme(C3:C&LaLigne&)" avant de faire "FillRight"
Plusieurs façons de concaténer ont été essayées sans résultat. Il faut aussi penser à enlever les $ de
4$C$3:$C$650"

Je peux mettre danns la cellule soit "Plage.Address" ou "=somme(C3:C650)" mais je n'ai pas réussi à
concaténer les deux "=somme(b3:b&LaLigne&)". Ci joint le code que j'utilise.

'-----------------
Sub jj()
Dim LaColonne As Long, LaLigne As Long, LaLigne2 As Long
LaLigne = Application.Match("VISITEURS", [b:b], 0) - 2
Set plage = Range(Cells(3, 3), Cells(LaLigne, 3))
'MsgBox Range(Cells(3, 3), Cells(LaLigne, 3)).Address
MsgBox plage.Address
LaLigne2 = Application.Match("Rencontres", [b:b], 0)
'MsgBox Cells(LaLigne2, 3).Address
'Cells(LaLigne2, 3).Value = "=somme("&Plage.Address&")"
'Cells(LaLigne2, 3).Value = "=somme(b3:b&LaLigne&)"
Cells(LaLigne2, 3).Value = "=somme(B3:B650)"
'Cells(LaLigne2, 3).Value = plage.Address
Cells(LaLigne2, 3).Select

End Sub
'---------------------

Votre assistance est bienvenue

--
albertri-at-videotron.ca.invalid




Avatar
albert
Bonjour encore,
Le 2e été indien vient de se terminer, c'est la pluie aujourd'hui.

"Jacky" a écrit dans le message de groupe de discussion :
j9g1r2$epo$

Pour y inscrire la formule
Cells(LaLigne2, 3).Formula = "=sum(c3:c" & LaLigne & ")"



Inscrire la formule pour une somme de colonne fonctionne bien. Mais inscrire
la formule pour une somme de ligne ça ne va pas. Il faut convertir le
numéro de colonne de numérique à alphabétique et je n'ai pas trouvé. MsgBox
le fait, donc il doit y avoir une façon de faire. Transformer colonne No 62
à BJ.

Dim LaColonne As Long, Lacolonne2 As Long, LaLigne As Long, LaLigne2 As Long
LaLigne = Application.Match("VISITEURS", [b:b], 0) - 2
LaColonne = Application.Match("TOTAL", [2:2], 0)
Lacolonne2 = Application.Match("TOTAL", [2:2], 0) - 1

'----->>>Cells(3, LaColonne).Formula = "=sum(c3:" &LaColonne2& "3)"
'voulu(C3:BJ3)

Set plage = Range(Cells(3, LaColonne), Cells(LaLigne, LaColonne)) '
BK3:BK650
Range(Cells(3, LaColonne), Cells(LaLigne, LaColonne)).FillDown
End Sub
'-----------------

j'apprécie grandement votre aide.
--
albertri-at-videotron.ca.invalid
Avatar
Jacky
Re..
'voulu(C3:BJ3)




Essaye..
Cells(3, LaColonne).Formula = "=sum(" & Range(Cells(3, 3), Cells(3, Lacolonne2)).Address(0, 0) & ")"
--
Salutations
JJ


"albert" a écrit dans le message de news: j9h9eh$qsp$
Bonjour encore,
Le 2e été indien vient de se terminer, c'est la pluie aujourd'hui.

"Jacky" a écrit dans le message de groupe de discussion : j9g1r2$epo$

Pour y inscrire la formule
Cells(LaLigne2, 3).Formula = "=sum(c3:c" & LaLigne & ")"



Inscrire la formule pour une somme de colonne fonctionne bien. Mais inscrire la formule pour une somme de
ligne ça ne va pas. Il faut convertir le numéro de colonne de numérique à alphabétique et je n'ai pas
trouvé. MsgBox le fait, donc il doit y avoir une façon de faire. Transformer colonne No 62 à BJ.

Dim LaColonne As Long, Lacolonne2 As Long, LaLigne As Long, LaLigne2 As Long
LaLigne = Application.Match("VISITEURS", [b:b], 0) - 2
LaColonne = Application.Match("TOTAL", [2:2], 0)
Lacolonne2 = Application.Match("TOTAL", [2:2], 0) - 1

'----->>>Cells(3, LaColonne).Formula = "=sum(c3:" &LaColonne2& "3)" 'voulu(C3:BJ3)

Set plage = Range(Cells(3, LaColonne), Cells(LaLigne, LaColonne)) ' BK3:BK650
Range(Cells(3, LaColonne), Cells(LaLigne, LaColonne)).FillDown
End Sub
'-----------------

j'apprécie grandement votre aide.
--
albertri-at-videotron.ca.invalid
Avatar
albert
Bonjour
Moi j'irai bientôt me coucher bien satisfait.
Je savais que vous trouveriez la réponse, mes manuels de formation VBA ne
mentionne rien de tout cela, mais peut-être je n'ai pas bien cherché. J'ai
commencé à utiliser EXCEL en 2005, pour moi c'était nouveau, mais même à 78
ans j'aimerais me trouver un prof pour le VBA.
Tout fonctionne comme j'en rêvais au début, je ne croyais pas y arriver. Les
utilisateurs n'auront plus à douter des résultats et à m'appeler à la
rescousse,

Un gros MERCI
Respectueusement
Albert

"Jacky" a écrit dans le message de groupe de discussion :
j9hh5m$fn8$
Re..
'voulu(C3:BJ3)




Essaye..
Cells(3, LaColonne).Formula = "=sum(" & Range(Cells(3, 3), Cells(3,
Lacolonne2)).Address(0, 0) & ")"
--
Salutations
JJ
Avatar
Jacky
Re..
Moi j'irai bientôt me coucher bien satisfait.


En relisant la demande, je vois que l'objectif est la recopie de la formule
Pour mettre la formule dans la plage complète en une fois sans avoir à faire de recopie il y a ceci..

Jusqu'a "visiteurs"
Range(Cells(3, LaColonne), Cells(LaLigne, LaColonne)).Formula = "=sum(" & Range(Cells(3, 3), Cells(3,
Lacolonne2)).Address(0, 0) & ")"

Jusqu'a "rencontre"
Range(Cells(3, LaColonne), Cells(LaLigne2, LaColonne)).Formula = "=sum(" & Range(Cells(3, 3), Cells(3,
Lacolonne2)).Address(0, 0) & ")"

Idem pour les lignes
Bon courage
--
Salutations
JJ


"albert" a écrit dans le message de news: j9hsm5$a4v$
Bonjour
Moi j'irai bientôt me coucher bien satisfait.
Je savais que vous trouveriez la réponse, mes manuels de formation VBA ne mentionne rien de tout cela, mais
peut-être je n'ai pas bien cherché. J'ai commencé à utiliser EXCEL en 2005, pour moi c'était nouveau, mais
même à 78 ans j'aimerais me trouver un prof pour le VBA.
Tout fonctionne comme j'en rêvais au début, je ne croyais pas y arriver. Les utilisateurs n'auront plus à
douter des résultats et à m'appeler à la rescousse,

Un gros MERCI
Respectueusement
Albert

"Jacky" a écrit dans le message de groupe de discussion : j9hh5m$fn8$
Re..
'voulu(C3:BJ3)




Essaye..
Cells(3, LaColonne).Formula = "=sum(" & Range(Cells(3, 3), Cells(3, Lacolonne2)).Address(0, 0) & ")"
--
Salutations
JJ
Avatar
albert
Salut
"Jacky" a écrit dans le message de groupe de discussion :
j9j7c8$cvq$

En relisant la demande, je vois que l'objectif est la recopie de la formule
Pour mettre la formule dans la plage complète en une fois sans avoir à
faire de recopie il y a ceci..



J'ai mis un fichier réduit sur Cjoint.com car cijoint.fr semble en
dérangement
La plage du fichier courant est de 655 noms et 60 rencontres et le mot Total
est dans la colonne BK et Rencontres sur la ligne 666.
Dans le coin gauche en bas, les trois cellules ad40, ad40 et ad41 doivent
indiquer le même résultat,

http://cjoint.com/?0KlvMyugPxJ

Jusqu'a "visiteurs"
Range(Cells(3, LaColonne), Cells(LaLigne, LaColonne)).Formula = "=sum(" &
Range(Cells(3, 3), Cells(3, Lacolonne2)).Address(0, 0) & ")"


Cette ligne va bien

Jusqu'a "rencontre"
Range(Cells(3, LaColonne), Cells(LaLigne2, LaColonne)).Formula = "=sum(" &
Range(Cells(3, 3), Cells(3,


Lacolonne2)).Address(0, 0) & ")"
J'ai dû modifier cette ligne par
Range(Cells(LaLigne2, 3), Cells(LaLigne2, Lacolonne2)).Formula = "=sum(" &
Range(Cells(3, 3), Cells(LaLigne, 3)).Address(0, 0) & ")"

La nouvelle formule est dans le Module1, Le bouton bleu de la Macro est dans
"K1"
Très court, 5 lignes pour déclarer les variables et 5 lignes de code, total
10 lignes.
Je serai à l'extérieur samedi et dimanche.

merci
Respectueusement

--
albertri-at-videotron.ca.invalid
Avatar
Jacky
Re...
Cela semble fonctionner selon la demande.....

Voir ici avec 2 feuilles supplémentaires pour tester 2 autres propositions
http://cjoint.com/?0KntsuS8NK4
--
Salutations
JJ


"albert" a écrit dans le message de news: j9k2ss$p3l$
Salut
"Jacky" a écrit dans le message de groupe de discussion : j9j7c8$cvq$

En relisant la demande, je vois que l'objectif est la recopie de la formule
Pour mettre la formule dans la plage complète en une fois sans avoir à faire de recopie il y a ceci..



J'ai mis un fichier réduit sur Cjoint.com car cijoint.fr semble en dérangement
La plage du fichier courant est de 655 noms et 60 rencontres et le mot Total est dans la colonne BK et
Rencontres sur la ligne 666.
Dans le coin gauche en bas, les trois cellules ad40, ad40 et ad41 doivent indiquer le même résultat,

http://cjoint.com/?0KlvMyugPxJ

Jusqu'a "visiteurs"
Range(Cells(3, LaColonne), Cells(LaLigne, LaColonne)).Formula = "=sum(" & Range(Cells(3, 3), Cells(3,
Lacolonne2)).Address(0, 0) & ")"


Cette ligne va bien

Jusqu'a "rencontre"
Range(Cells(3, LaColonne), Cells(LaLigne2, LaColonne)).Formula = "=sum(" & Range(Cells(3, 3), Cells(3,


Lacolonne2)).Address(0, 0) & ")"
J'ai dû modifier cette ligne par
Range(Cells(LaLigne2, 3), Cells(LaLigne2, Lacolonne2)).Formula = "=sum(" & Range(Cells(3, 3), Cells(LaLigne,
3)).Address(0, 0) & ")"

La nouvelle formule est dans le Module1, Le bouton bleu de la Macro est dans "K1"
Très court, 5 lignes pour déclarer les variables et 5 lignes de code, total 10 lignes.
Je serai à l'extérieur samedi et dimanche.

merci
Respectueusement

--
albertri-at-videotron.ca.invalid

Avatar
albert
Bonjour
"Jacky" a écrit dans le message de groupe de discussion :
j9p1re$gup$
Re...
Cela semble fonctionner selon la demande.....
Voir ici avec 2 feuilles supplémentaires pour tester 2 autres propositions
http://cjoint.com/?0KntsuS8NK4
--
Salutations
JJ
Belle surprise à mon retour. J'accepte les deux propositions, j'ai mis
"Private Sub Worksheet_Change(ByVal Target As Range)" sur la feuil1. J'aime
la façon que cela fonctionne, mieux que celle proposée il y a quelques jours
et qui m'effrayait.
Merci aussi d'avoir ajouté les formules pour la LaLigne2+1, quoique cela
n'est qu'un caprice personnel et n'est pas prise en considération par
l'administration.
Mais la ligne Rencontres est nécessaire car le total reflète la popularité
de l'activité du jour. Les cellules vides à droite de la colonne Total,
seront utilisées en fin de saison pour connaitre les activités préférés et
les connaissances de l'individu.

Juste une dernière petite question, j'ai ajouté la ligne suivante pour la
colonne "A" , pour afficher le caractère Wingding2 0x81, qui est utilisé
sur la copie papier en cas de panne de l'ordinateur pour y marquer le petit
crochet. (une copie par année après l'inscription).

Range(Cells(3, 1), Cells(LaLigne, 1)).Value = "
1 2 3 4