Insérer une macro dans une formule

Bonjour à toutes et tous, tout nouveau sur ce forum je sollicite votre aide

j'ai Windows 10 et Ofiice 2010 ,pourriez vous me dire comment faire et si c'est possible d'inserer une macro dans une formule?

Genre si A1=1 Macro1,sinon,si A1=2 macro2,etc jusqu'à 10 et bien sur que la macro s'arrete lorsque le bon chiffre est trouvé. En esperant m'etre bien exprimer je vous remercie par avance de m'avoir lu. Bonne nuit à ceuw qui comme moi sont encore debout

Bonjour

Cordialement

Bonjour Dan,

Je te remercie de m'avoir répondu et te joins mon fichier,si ce n'est pas clair je suis prêt à répondre à tes questions supplémentaires. Merci d'avance

Cordialement Alain

Re

il n'y a pas de fichier dans ton message

Crdlt

Bonjour, Dan

Je suis sincèrement désolé, comme je le disais dans mon 1er message je suis tout nouveau sur ce site. Je fais donc une nouvelle tentative

Amicalement,

Alain


Excuses moi, je n'avais pas vu que mon fichier était trop volumineux, c'est pour cela que tu ne l'as pas reçu,mais là je crois que c'est bon.

Amicalement,

Alain.

Re

Juste une question, on copie toujours en G5 sur la feuille TAB ou il faut ajouter les nouvelles en dessous

En gros, je mets 1 en C5, je copie L13:W20 en G5 de la feuille TAB

Je mets 2 en C5, on copie L23 : W30 où ??

A te relire

Re

Je te remercie de t'etre interessé à ma question ,tu copies 2 en G15, G25,G35...........

Merci encore pour ton interet

Alain

RE,

Essaie avec ce code :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lg As Integer, dlg As Integer
If Not Intersect(Target, Range("C5")) Is Nothing Then
On Error Resume Next
lg = Sheets("Feuil1").Range("L:L").Find(Target, LookIn:=xlValues).Row
dlg = Range("R:R").Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 3
If Err > 0 Then
    MsgBox "la valeur n'existe pas": Exit Sub
Else:
    Sheets("Feuil1").Range("L" & lg & ":W" & lg + 8).Copy Range("G" & dlg)
End If
End If
End Sub

Code à placer dans le feuille TAB comme suit.

  • Sélectionner l'onglet TAB
  • Clique droite sur l'onglet puis choisir l'option "visualiser le code"
  • Coller le code ci-dessus dans la fenêtre

Il te reste à mettre le chiffre souhaité en C5 dans la feuille TAB

Si ok, clique sur le v vert à coté du bouton EDITER pour cloturer le fil lors de ta réponse

Crdlt

Bjr Dan

Je viens d'essayer ce que tu m'as envoyé, cela fonctionne très ,très bien merci, oserais je te demander pourrais tu m'expliquer ce que tu m'as envoyé SVP, car le travail déjà fait ne me fait pas peur hihi ,mais j'aimerais bien si possible; essayer de comprendre lol. Je te remercie beaucoup

Alain cordialement

re

Voici les explications

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lg As Integer, dlg As Integer
'vérification que la valeur entrée (Target) est bien dans la cellule C5
If Not Intersect(Target, Range("C5")) Is Nothing Then
'Instruction pour permettre au code de continuer en cas d'erreur
On Error Resume Next
'on cherche la ligne correspondant à la valeur en C5 dans la colonne L de la feuille 1
lg = Sheets("Feuil1").Range("L:L").Find(Target, LookIn:=xlValues).Row
'on cherche la dernière ligne comportant des données dans la colonne R de la feuille dans laquelle se trouve ce code. Donc ici la feuille TAB
dlg = Range("R:R").Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 3
'on vérifie qu'il n'y a pas d'erreur retournée lors de la recherche de lg. Exemple si la valeur en C5 n'est pas trouvée en feuille 1
If Err > 0 Then
    'si erreur constatée lors de la recherche lg ou dlg, on affiche une boite à message puis on sort de la macro
    MsgBox "la valeur n'existe pas": Exit Sub
Else:
    ' Copie des lignes L a W dans la feuille où se trouve le code. Donc ici la feuille TAB
    Sheets("Feuil1").Range("L" & lg & ":W" & lg + 8).Copy Range("G" & dlg)
End If
End If
End Sub

Si ok, oublie pas de clôturer le fil

Si pas ok, dis moi

Crdlt

Bonjour, Dan

Je te remercie, pour tes explications mais pour moi cela reste encore très complexe oserais je te demander est il possible de faire la meme chose pour les feuilles 2,3,4,5 qui sont exactement semblables; en ayant le numéro de la feuille 2 en D5,le numéro de la feuille 3 en E5,le numéro de la feuille 4 en F5, le numéro de la feuille 5 en G5 cela nous donnerait la sélection de feuille 1 collée en G15 comme maintenant, puis la sélection feuille 2 collée en G25 sélection feuille 3 en G35?séléction feuille 4 en G45,séléction feuille 5 en G 55?toutes les feuilles sont totalement identiques sauf que ce sont les chiffres qui diffèrent. Si je demande trop tu laisses tomber bien sur.

Cordialement Alain

re

Juste que je comprenne bien, si C5 on colle uniquement les données venant de la feuille 1, Si D5 on colle uniquement les données venant de la feuille 2, etc... ?

Crdlt

Re Daniel

Oui c'est exactement cela. Je me suis bien fait comprendre pour une fois LOL.

Cordialement, Alain

Re

Ok mais je vois un problème par rapport à ton fichier.

G5 pour feuille 5 tombe sur le chiffre 1 de la feuille TAB. On doit faire quoi ?

Re Dan,

Tu décales au lieu de commencer en C5 tu commences en A5,je me demande si je n'ai pas eu déjà recours à tes lumières il y a une dizaine d'années. Merci, encore,

Cordialement, Alain

Re

Essaie en remplaçant le code par celui-ci :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim lg As Integer, dlg As Integer
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("A5, B5, C5, D5, E5")) Is Nothing Then
    On Error Resume Next
    dlg = Range("R:R").Find("*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 3
    If dlg = 0 Then dlg = 5: Err = 0
    lg = Sheets("Feuil" & Target.Column).Range("L:L").Find(Target, LookIn:=xlValues).Row

    If Err > 0 Then
        MsgBox "La valeur ou la feuille Feuil" & Target.Column & " n'existe pas": Exit Sub
    Else:
        Sheets("Feuil" & Target.Column).Range("L" & lg & ":W" & lg + 8).Copy Range("G" & dlg)
    End If
End If
End Sub

Les chiffres sont placés entre A5 et E5. On aurait pu aussi n'utiliser qu'une seule cellule pour reprendre les infos dans les feuilles concernées.

A toi de voir ce qui te convient le mieux.

je me demande si je n'ai pas eu déjà recours à tes lumières il y a une dizaine d'années.

Possible mais sous quel pseudo et quel site ?

Cordialement

Re, Dan

Merci beaucoup cela fonctionne impeccable, tout mes remerciements.

Je pense que c'était sur le site Excel le pseudo devait etre Daniel .

Encore, une fois tous mes remerciements.

Cordialement,

Alain

re

Je pense que c'était sur le site Excel le pseudo devait etre Daniel .

Non car mon pseudo sur ce site est aussi celui que j'ai toujours utilisé et ce, depuis + de 10 ans

Cordialement

Re, Dan

Excuses moi je pensai que c'était toi, MERCI encore.

Cordialement, ALAIN

Rechercher des sujets similaires à "inserer macro formule"