Formule dans une macro

Résolu
Misterlagaf Messages postés 6 Statut Membre -  
WeaponEDGE Messages postés 114 Statut Membre -
Bonjour,
je voudrais appliquer a un image avec une macro et une condition if then en if

la fonction suivante
if E31=1,G31=2,I31=3,K31=4 then
alors je passe sur la feuil2

end if
mais je n'y arrive pas pouvez vous m'aider merci

merci d'avance de votre aide

4 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
     
    Bonjour,

    Clic droit sur l'image : Affecter une macro.
    Le code :
    Sub Image1_Cliquer()
    'Avec condition ET
    If [E31] = 1 And [G31] = 2 And [I31] = 3 And [K31] = 4 Then
    'Avec Condition OU
    'If [E31] = 1 Or [G31] = 2 Or [I31] = 3 Or [K31] = 4 Then
    Sheets("Feuil2").Activate
    End If
    End Sub

    0
    1. Iama Messages postés 324 Statut Membre 14
       
      Bonjour pijaku

      Une petite question svp pour ma culture,
      Pour quelle raison utilise-tu dans tes codes [E31] à la place de Range("E31")?
      Est-ce pour une facilité d'écriture?
      Est-ce exactement la même chose?

      cordialement
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      Bonjour,

      C'est exactement la même chose. Pure fainéantise de ma part.
      0
    3. Iama Messages postés 324 Statut Membre 14
       
      Alors, Je crois que je vais devenir faignant
      0
  2. Misterlagaf Messages postés 6 Statut Membre
     
    merci pour ton aide
    encore une demande
    et si je voudrais la même formule mais pour des codes différent et toujours avec le même bouton
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      Ta question manquant cruellement de précision...

      Sub Image1_Cliquer()
      'Avec condition ET
      If [E31] = 1 And [G31] = 2 And [I31] = 3 And [K31] = 4 Then
      'Avec Condition OU
      'If [E31] = 1 Or [G31] = 2 Or [I31] = 3 Or [K31] = 4 Then
      Sheets("Feuil2").Activate
      ElseIf [E31] = 10 And [G31] = 20 And [I31] = 30 And [K31] = 40 Then
      Sheets("Feuil3").Activate
      Else
      Sheets("Feuil4").Activate
      End If
      End Sub
      0
    2. Misterlagaf Messages postés 6 Statut Membre
       
      le 1er code et fonctionnelle et il vas super bien
      ma question et la suivante:
      supposont que je voudrais ouvrir 10 feuilles avec 10 code different
      a partir du premier code
      0
    3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      Quels sont les 10 codes d'ouverture?
      0
    4. Misterlagaf Messages postés 6 Statut Membre
       
      le 1er 1234 le 2ieme 2546 par exemple ,ect... pour les autre
      0
    5. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      Ben voilà. ..

      Dim Code As String
      
      Code = CStr([E31].Value & [G31].Value & [I31].Value & [K31].Value)
      Select Case Code
        Case "1234"
            Sheets("Feuil1").Activate
        Case "2546"
            Sheets("Feuil2").Activate
        Case "6541"
            Sheets("Feuil3").Activate
        '...
        '...
        Case Else
            MsgBox "Mauvais code"
      End Select
      0
  3. Misterlagaf Messages postés 6 Statut Membre
     
    je sais que cela marche tres bien avec les celulle et je suis tres novice avec les ranges
    malgrée que j'adore faire des tableurs pour un oui pou pour un non
    0
    1. WeaponEDGE Messages postés 114 Statut Membre 9
       
      Bonjour,

      Pour ta culture personnel le RANGE sert à grouper plusieurs cellule:
      Le RANGE("A1").select ne va grouper qu'une seule cellule alors que le Range("A1", "B4").Select sélectionnera toutes les cellule de A1 jusqu'à B4 donc 8 celulles au total.

      Après le VBA c'est comme une langue vivante, parfois il ya plusieurs manière de dire la même chose. Si tu veux sélectionner une cellule tu peux le noter de ces différente manières :
      Range("A1").select
      [A1].select
      Cells(1,"A").select
      Cells(1,1).select

      pour ma part je te conseil d'utiliser la dernière solution car elle utilise uniquement des nombres pour déterminer la position d'une cellule ce qui te permet de jouer avec les variable quand la cellule à sélectionner n'est pas connu à l'avance.

      pour en revenir au groupement des cellules voilà ce que Range("A1", "B4").Select donnerait en utilisant le Cells :
      Range(cells(1,1),cells(4,2)).select
      0
  4. Misterlagaf Messages postés 6 Statut Membre
     
    merci pour votre aide precieuse
    avec les essais qui marche tres bien je pourrais continuer mon projet :)
    0