VBA pour ajout de formule dans Excel

Bonjour,

Je débute en VBA et j'ai du mal à faire une macro pour Excel.

Je m'explique pour un collaborateur, je dois faire un bouton qui exécutera ses formules :

=DROITE(C1;NBCAR(C1)-CHERCHE("@";C1;1))

et

=NB.SI(J:J;J1)

mais je ne vois pas comment c'est possible.

J'ai essayé ceci :

Sub Macro1()

Range("J1").Select

Formule = "=[DROITE(C1;NBCAR(C1)-CHERCHE((@);C1;1))]"

ActiveCell.Formulalocale = "Formule"

End Sub

Mais cela inscrit juste Formule dans la cellule.

Pouvez-vous m'aider s'il vous plait ?

Merci,

Cordialement.

Bonjour toutes et tous

@ tester

   Sub Macro1()
 Range("J1").Select
    Selection.FormulaArray = _
        "=[DROITE(C1;NBCAR(C1)-CHERCHE((@);C1;1))]"

End Sub

crdlt,

André

Bonsoir,

A tester :

Range("J1").FormulaLocal = "=DROITE(C1;NBCAR(C1)-CHERCHE(""@"";C1;1))"

Bonjour,

Merci beaucoup pour votre réponse.

J'en aurai une deuxième pour vous, lorsque que j’exécute la formule "=DROITE(C1;NBCAR(C1)-CHERCHE(""@"";C1;1))" et la formule "=NB.SI(J:J;J1)" cela me sort ceci :

excel

J'aimerais avoir dans la colonne N et O ceci :

excel2

Avez-vous une idée de la formule ?

Merci ,

Cordialement.

Bonjour, salut Andre13, Raja,

Je pense que tu n'as pas besoin de VBA pour réaliser ceci, un simple TCD (tableau croisé dynamique) te fera le travail simplement et rapidement.

Si tu n'arrives pas à le mettre en oeuvre, joint un fichier exemple que l'on puisse ajouter ce TCD directement dedans.

Bonjour toutes et tous

coucous Pedro et Raja

un exemple pour 65000 ligne colonne J de la feuille

cellule N1 XX.fr formule pour cellule O1:

=SOMMEPROD((SOUS.TOTAL(3;INDIRECT("J"&LIGNE($J$1:$J$65000)))*($J$1:$J$65000="xx.fr")))

O2 pour AA. com

=SOMMEPROD((SOUS.TOTAL(3;INDIRECT("J"&LIGNE($J$1:$J$65000)))*($J$1:$J$65000="AA.com")))

etc.

fonctionne avec ou sans filtre

Note: ( on oublie provisoirement les en-têtes des colonnes pour le classeur test111sommeprod2 filtre ci-joint)

crdlt,

André

Bonjour,

Encore merci pour votre aide.

Dernière petit question , comment je peux faire pour mettre dans la colonnes N uniquement 1 fois xx.fr AA.com etc car mon fichier origine fait plusieurs milliers de ligne.

Cordialement

Bonjour,

Je débute en VBA et j'ai du mal à faire une macro pour Excel.

Range("J1").Select

Formule = "=[DROITE(C1;NBCAR(C1)-CHERCHE((@);C1;1))]"

ActiveCell.Formulalocale = "Formule"

Bonjour , pour info en passant ; cela peu servir pour la prochaine fois : Tu Indique Formule comme variable de calcul.

Mais quand tu utilises ta variable tu écris = "Formule" On ne met pas entre guillemets une variable sinon Excel lit du texte.

ActiveCell.Formulalocale = Formule

Re,

coucou Xmen

en vba avec un module (Module1) +1 bouton

Note: juste un petit pb avec les en-têtes de colonne en N me recopie deux fois, bon tant pis grr

mais, en grossomodo cela fonctionne, la macro filtre et place dans la même feuille en colonne AA sans doublon recopie la colonne et la place en colonne N

ci-joint

crdlt,

André

Bonjour,

Encore une fois merci pour votre aide.

Cordialement.

Rechercher des sujets similaires à "vba ajout formule"