[RÉSOLU] Macro simple : Construire une formule automatiquement

  • Initiateur de la discussion Initiateur de la discussion Xcited
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Xcited

XLDnaute Nouveau
Bonjour,

Débutant en macros, je chercherai à faire une formule qui se construirait sur la base d'une macro qui doit pouvoir récupérer des valeurs dans des onglets ayant tous une structure similaire.

Situation :

J'ai un classeur "Feuil1!" qui dispose :

- En colonne A du nom de tous les autres onglets
- En colonne C les formules permettant d'avoir les totaux des valeurs contenues dans chaque onglet (Total 1 = somme des valeur en B1 de chaque autre onglet, Total 2 = somme des valeurs en B2 de chaque autre onglet...)

Comment éditer une macro qui permette d'obtenir la formule en Colonne C de la "feuil1" automatiquement et avec les données présentes ?

J'ai fait un test de macro, mais qui ne fonctionne pas (objet requis sur l'objet "Formule"). Voici le code :

Code:
Sub Bouton1_Clic()

Dim Ressource As String
Dim Formule As Object
Dim Formulefin As Object
Dim i As Integer

Set Formule = Sheets("Feuil1").Range("A1").Value

    For i = 1 To Sheets("Feuil1").Range("A1").End(xlDown).Row
            Ressource = ThisWorkbook.Worksheets("Feuil1").Range("A" & i)
            Set Formule = Formule & Ressource & "!B1+"
            
    Next i
    
            Set Formulefin = "=" & Formule
            Set ThisWorkbook.Worksheets("Feuil1").Range("C1").Formula = Formulefin

    Sheets("Feuil1").Range("C1").AutoFill Destination:=Range("C1:C3")

End Sub

Par avance merci de votre aide !
 

Pièces jointes

Dernière édition:
Re : Macro simple : Construire une formule automatiquement

Bonjour,
J'ai tenté de comprendre le raisonnement...
Code:
Sub Bouton1_Clic()
Dim formule$, i&, j&
For i = 1 To Range("B65000").End(xlUp).Row
    For j = 1 To Range("A65000").End(xlUp).Row
        formule = formule & "INDIRECT(A" & j & "&""!B""&ROW())+"
    Next
    Range("C" & i).Formula = "=" & Left(formule, Len(formule) - 1)
    formule = ""
Next

End Sub
...mais sans succès
A+
kjin
 
Re : Macro simple : Construire une formule automatiquement

Bonjour, salut kjin🙂,
Je suis comme kjin : dans l'expectative😕.
Les données de la feuille 1 colonne B correspondent à quoi ?
Le plus simple est de noter manuellement le résultat attendu sur ton fichier exemple avec quelques mots d'explication.
A+
 
Re : Macro simple : Construire une formule automatiquement

Alors, pour répondre à chacun : J'ai pu tester la macro proposée et merci à Kjin pour cela !

Le résultat attendu c'est produire la même formule que celle présente dans chaque cellule renseignée en colonne C de la "feuil1".

La Macro fournie par kjin produit bien le résultat "chiffré" attendu, mais pas la formule attendue, or c'est bien la formule qui m'intéresse.

Je re-uploade le fichier avec le commentaire.

PS : Même tributaire de votre bon cœur, je me permet de préciser que les "..." c'est pas particulièrement plaisant (sans vouloir être vexant) 😕 "être dans l'expectative" est nettement plus poétique 🙂 et laisse moins de doute sur le ton du message !
 
Re : Macro simple : Construire une formule automatiquement

Bonjour à tous

Voici une petite adaptation de ce que m'a dit henry 🙂, en sélectionnant la zone où seront copier les macros (facilement adaptable):

Code:
Selection.FormulaR1C1 = "=Albert!RC[-1]+Hugo!RC[-1]+Paul!RC[-1]"
 
Re : Macro simple : Construire une formule automatiquement

Bonsoir,
...je me permet de préciser que les "..." c'est pas particulièrement plaisant
Snirf... j'ai juste essayé de comprendre comment faire...
C'est l'hôpital qui se moque de la charité
Quand au "ton" du message, la langue française est suffisamment riche pour que je m'exprime autrement que par petits points, au besoin j'utilise les smileys, n'y voit donc rien d'autre que ce que veulent dire 3 petits points

Edit : je ne vois pas ce que tu reproches à ma formule, mais bon...

Code:
Sub Bouton1_Clic()
Dim formule$, i&, j&
For i = 1 To Range("B65000").End(xlUp).Row
    For j = 1 To Range("A65000").End(xlUp).Row
        formule = formule & Range("A" & j) & "!B" & i & "+"
    Next
    Range("C" & i).Formula = "=" & Left(formule, Len(formule) - 1)
    formule = ""
Next
End Sub

A+
kjin
 
Dernière édition:
Re : Macro simple : Construire une formule automatiquement

Ah voilà ça fonctionne exactement comme je le souhaite ! Merci Kjin

La précédente formule fournissait le bon résultat chiffré comme je le disais, mais en fait derrière, il faut imaginer que l'onglet feuil1! d'une part et les onglets Albert Hugo Paul d'autre part, soient de structures différentes. Dans ce cas ta formule n'aurait pas marché !

Mais bon c'est de ma faute, je ne l'avais pas précisé assez tôt !

Pour boucler le HS :

Maintenant concernant les trois petits points et j'en arrêterai là pour ma part, la page wikipédia montre bien qu'il y a des sens donnés qui peuvent être lourds de "sous-entendus". Rien de plus ! Ce n'est pas vraiment un reproche, c'est juste qu'à l'écrit on pourrait avoir l'impression dans tes phrases :

Mais encore...!

Ca ne nous dit pas si la macro proposée correspond à tes attentes...

... que ça exprimait, je ne sais pas mais, quelque chose comme de la lassitude ou un sentiment du même acabit ! C'est tout ! 🙂 (je ne reproche l'usage du 3 petits points en toutes circonstances, ou je veux bien me faire traiter de parano 😀)

Loin de moi l'idée de me lancer à un jeu de provocation, c'est juste que je ne savais pas comment le prendre !

Merci en tout cas de ton aide !

Je passe le topic en résolu !

EDIT : Ahem... c'est pas possible apparemment ?
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
230
Réponses
5
Affichages
317
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
569
Réponses
12
Affichages
505
Retour