Lacner une macro quand valeur en A2 = "texte"

johnny -  
 Utilisateur anonyme -
Bonjours

J'aimerais avoir un bouton macro sur ma feuille excel
qui lance une importation de donné et en même temps j'aimerais pouvoir lancer une macro quand la valeur en A2 change

La valeur en A2 sera un nom client et j'aimerais quand quand le nom du client change lance une macro déjà enregistrer.

comme cela quand je lancer la macro importation de donnée il change en même temps les donne client sur la facture.

voici la macro importation :

Sub Importation()
'
' Importation Macro
' Importation des valeur dans facture type
'

'
Sheets("Facture type").Select
Range("A15:G31").Select
Selection.ClearContents
Sheets("Compta").Select
Selection.Copy
Sheets("Facture type").Select
Range("A15").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

End Sub

3 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonjour,

    teste comme cela
    Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Not Intersect(Target, [A2]) Is Nothing Then
    Sheets("Facture type").Select
    Range("A15:G31").ClearContents
    Sheets("Compta").Copy
    Sheets("Facture type").Select
    Range("A15").Select
    Selection.PasteSpecial Paste:=xlValues
    End If
    End Sub
    0
    1. johnny
       
      merci pour votre réponse mais en réalité la valeur de A2 change et pour chaque autre valeur je veut que se soit une autre marco qui se lance. ou dois je noter la macro qui se lance et ou mettre la valeur de A2 ?

      je suis sur vba que depuis 1 semaine, pourrais tu me donner un texte complet car j'y comprends pas grand chose.

      Merci d'avance
      0
  2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour

    pour lancer une macro en changeant la valeur de A2, essayez dans le code feuille:

    Private Sub Worksheet_change(ByVal Target As Range)
    If Target.Cells = Cells(2, 1) Then
    Call Importation
    End If
    End Sub

    crdlmnt

    La qualité de la réponse dépend surtout de la clarté de la question, merci!
    0
  3. Utilisateur anonyme
     
    Bonjour johnny,

    Je suppose que tu as mis ta sub Importation() dans un module,
    par exemple Module1. Tu n'as pas précisé quelle est la feuille
    où tu entres un nom de client en cellule A2 ; je vais supposer
    que c'est sur la feuille "Facture type".

    Dans ce cas, va sur le code de la feuille "Facture type",
    et mets le code suivant :

    Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Address = "$A$2" Then Importation
    End Sub
    

    Attention à ne pas confondre Worksheet_Change(..)
    et Worksheet_SelectionChange(..) !

    Cordialement.  😊
     

    0