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 :

Réunion de deux fonctions


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 163
    Par défaut Réunion de deux fonctions
    Bonjour voilà je cherche à réunir ces deux fonctions en une seule.
    Pensez vous que cela soit possible?

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    Sub PremAction()
     
    Dim i As Long, result As String
     
    Worksheets("Feuil1").Range("B:B,C:C,D:D,E:E,H:H,N:N,O:O,Q:Q,S:S,T:T,U:U,AD:AD").EntireColumn.Hidden = True
     
    With Sheets(1) '<-- adapter le nom de la feuille
        .Range("A:A").EntireRow.Hidden = False '<-- réaffichage de toutes les lignes
        For i = 4 To .Cells(Rows.Count, 1).End(xlUp).Row '<-- de la ligne 2 à la  dernière ligne de la colonne A
              If .Cells(i, 23) <> "" And .Cells(i, 23) <= Date And .Cells(i, 24) = "" Then
                result = result & Chr(20) & .Cells(i, 1) '<-- alors on mémorise le nom de la société
                .Rows(i).Hidden = True '<-- sinon on masque la ligne
            End If
        Next
    End With
     
    MsgBox "les sociétés à rappeler sont :" & vbLf & vbLf & result
     
    End Sub
     
     
    Sub DeuAction()
     
    Dim i As Long, result As String
     
    Worksheets("Feuil1").Range("B:B,C:C,D:D,E:E,H:H,N:N,O:O,Q:Q,S:S,T:T,U:U,AD:AD").EntireColumn.Hidden = True
     
    With Sheets(1) '<-- adapter le nom de la feuille
        .Range("A:A").EntireRow.Hidden = False '<-- réaffichage de toutes les lignes
        For i = 4 To .Cells(Rows.Count, 1).End(xlUp).Row '<-- de la ligne 4 à la  dernière ligne de la colonne A
            If .Cells(i, 27) <> "" And .Cells(i, 27) <= Date And .Cells(i, 28) = "" Then '<-- si la cellule contient la date du jour (Date renvoie la date du jour)
                result = result & Chr(10) & .Cells(i, 1) '<-- alors on mémorise le nom de la société
            Else
                .Rows(i).Hidden = True '<-- sinon on masque la ligne
            End If
        Next
    End With

    La première fonction dit: Si 23 est différente du vide et si 23 contient une date inférieur ou égale à la date du jour et si 24 vide alors on mémorise le nom
    Sinon on masque les lignes

    La deuxième fonction dit: Si 27 est différente du vide et si 27 contient une date inférieur ou égale à la date du jour et si 28 vide alors on mémorise le nom
    Sinon on masque les lignes

    Moi je voudrais les deux en même temps:

    Si 23 est différente du vide et si 23 contient une date inférieur ou égale à la date du jour et si 24 vide alors on mémorise le nom.
    Et si 27 est différente du vide et si 27 contient une date inférieur ou égale à la date du jour et si 28 vide alors on mérmorise le nom

    Sinon on masque les lignes...


    Pensez vous que ce soit possible, j'ai essayé quelque ligne de code, sans grande réussite....

    J'espère avoir été assez clair...

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Ceci devrait le faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If (.Cells(i, 23) <> "" And .Cells(i, 23) <= Date And .Cells(i, 24) = "") Or (.Cells(i, 27) <> "" And .Cells(i, 27) <= Date And .Cells(i, 28) = "") Then

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 163
    Par défaut
    Merci,

    Je suis un peu nul.
    Je ne savais pas comment relier les deux if....

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

Discussions similaires

  1. attendre 1 seconde entre deux fonctions
    Par urousseau dans le forum C++Builder
    Réponses: 8
    Dernier message: 08/06/2008, 19h14
  2. Deux fonctions ds le "OnChange" !
    Par lecail65 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 25/01/2007, 22h05
  3. [MySQL] Conflit entre deux fonction WHILE
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/11/2006, 18h15
  4. lancer deux fonctions en même temps
    Par youp_db dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/09/2006, 12h11
  5. [Système] Imbriquer deux fonctions ?
    Par psychoBob dans le forum Langage
    Réponses: 4
    Dernier message: 22/04/2006, 20h49

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