IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Double with pour action commune [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Mars 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 316
    Par défaut Double with pour action commune
    Bonjour

    je n'ai pas testé mais je voudrais savoir si ce code est possible

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    sub essai ()
    Dim  Ws1 As Worksheet, Ws2 As Worksheet
    Set Ws1 = ThisWorkbook.Worksheets("x")
    Set Ws2 = ThisWorkbook.Worksheets("y")
    With Ws1 and Ws2
        'action commune au 2 fichiers
    If Ws1 =  'condition Then
        'action
    Elseif Ws2 = 'condition Then
        'action
    End if
    End With
    Sub end
    Je pense que que vous allez me proposer For Each Worksheet in Workbook mais je voulais savoir si ma demande était réalisable
    Merci de vos éclairages

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 175
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Afficher un code et demander si c'est possible ne me semble pas être une bonne approche car finalement et à moins d'être devin, on ne sait tien de votre attente.
    Expliquer en français sans utiliser de vocabulaire VBA tout en affichant le code est sans doute préférable pour la compréhension de la question

    Car si je résume
    je n'ai pas testé mais je voudrais savoir si ce code est possible
    tu écris un code que tu n'as pas testé

    Je pense que que vous allez me proposer For Each Worksheet in Workbook mais je voulais savoir si ma demande était réalisable
    Tu sais déjà ce que l'on va répondre. Bravo

    Merci de vos éclairages
    L'éclairage a besoin de courant

    En tous les cas cette ligne de code With Ws1 and Ws2 n'est pas possible et en faisant tourner le programme, tu l'aurais vu immédiatement

    Extrait de l'aide en ligne sur le bloc With...End With
    "Exécute une série d'instructions qui font référence à plusieurs reprises à un objet ou une structure unique afin que ces instructions puissent utiliser une syntaxe simplifiée lors de l'accès aux membres de l'objet ou de la structure. Lorsque vous utilisez une structure, vous ne pouvez lire que les valeurs des membres ou des méthodes invoke. En outre, vous obtenez une erreur si vous tentez d'assigner des valeurs aux membres d'une structure utilisée dans une instruction"
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Je ne sais pas si tu as bien compris le rôle de la structure With.
    Il s'agit de mettre en commun un élément pour ne pas avoir à l'écrire systématiquement dans une portion du code.
    Par exemple, un With Worksheets(1) permet de relier des cellules Range à une feuille de calcul.
    Mais si on pouvait mettre deux Worksheets dans le même With, comment l'exécution pourrait savoir à quelle feuille relier un Range qui y ferait référence ?

    Donc ce que tu proposes est non seulement impossible syntaxiquement mais ça n'aurait pas de sens.

  4. #4
    Membre éclairé
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Mars 2011
    Messages
    316
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Contrôleur de Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2011
    Messages : 316
    Par défaut
    Merci Menhir
    Merci Philippe et tout est une histoire de sémantique

    Synonymes de proposer
    agiter.
    énoncer.
    avancer.
    conseiller.
    offrir.
    promettre
    soumettre

    Mais je te laisse le dernier mot pour cloturer ce post (Ah!!! orgueil quand tu nous tiens!!!)

  5. #5
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Tout est un histoire de ... syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Type t2wsh
      Ws1 As Worksheet
      Ws2 As Worksheet
    End Type
    Sub Test()
    Dim Wss As t2wsh
      Set Wss.Ws1 = ThisWorkbook.Worksheets(1)
      Set Wss.Ws2 = ThisWorkbook.Worksheets(2)
      With Wss
        If .Ws1.Name = "Feuil1" Then
          MsgBox "La feuille 1 est nommée Feuil1"
        ElseIf .Ws2.Name = "Feuil1" Then
          MsgBox "La feuille 2 est nommée Feuil1"
        End If
      End With
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Double conditions pour verrouiller une action
    Par ThSPB dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/02/2011, 12h14
  2. [USB]Comment utiliser cette API pour la communication USB
    Par fouguasse dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 19/08/2007, 18h18
  3. [C#] Double click pour agrandir la fenêtre... Problème
    Par Radium133 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 17/01/2006, 17h41
  4. double click pour soumission de formulaires
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 16/11/2005, 12h32
  5. Condition sur requete pour Action MAcro
    Par hugo69 dans le forum Access
    Réponses: 4
    Dernier message: 12/10/2005, 12h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo