Formule dans une macro

Résolu
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. Modérateur
    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. 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. Modérateur
      Bonjour,

      C'est exactement la même chose. Pure fainéantise de ma part.
      0
    3. Alors, Je crois que je vais devenir faignant
      0
  2. 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. Modérateur
      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. 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. Modérateur
      Quels sont les 10 codes d'ouverture?
      0
    4. le 1er 1234 le 2ieme 2546 par exemple ,ect... pour les autre
      0
    5. Modérateur
      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. 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. 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. merci pour votre aide precieuse
    avec les essais qui marche tres bien je pourrais continuer mon projet :)
    0