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 :

VBA formule si à étendre


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Analyste
    Inscrit en
    Août 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste

    Informations forums :
    Inscription : Août 2017
    Messages : 20
    Par défaut VBA formule si à étendre
    Bonjour à tous,

    Etant débutant en vba je n'arrive pas à me sortir de mon casse tête ...

    L'idée est :

    Dans une colonne A je dispose de différents noms,
    je souhaite que dans une colonne E on affiche :
    *1 lorsque le nom commence par ABC
    *2 lorsque le nom finit par ENT
    *3 pour les autres cas
    Je souhaite étendre cette formule jusqu'à la dernière ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Hyp()
    For i = 21 To DernLigne
     
    Next
    Cells(i, 1) = IIf((Left(Cells(i, 5), 3) = "ABC"), "1", IIf((Right(Cells(i, 5), 3) = "ENT"), "2", "3"))
     
    DernLigne = Range("E" & Rows.Count).End(xlUp).Row
    Range("A21").AutoFill Destination:=Range("A21:A" & DernLigne)
     
    End Sub
    Mais ça ne fonctionne pas ...

    Merci pour votre aide !

  2. #2
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,
    tu mélange tout !!!

    tu n'as pas besoin d'écrire une formule dans des cellules puisque tu traite (affiche) en direct avec VBA

    si tu veux vraiment écrire une formule style : "=SI(..." utilise ".FormulaLocal" avec VBA ou en direct avec Excel

    autre chose ,
    1) il n'y a rien dans ta boucle
    2) tu utilise la variable DernLigne et la ligne de code qui la détermine est après

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  3. #3
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,
    donc en direct dans excel , dans la cellule E21
    tu écris cette formule :
    =SI(GAUCHE($A21;3)="ABC";SI(DROITE(A21;3)="ENT";$A21;"");"")
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  4. #4
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    re,
    ou alors , avec VBA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub Hyp()
        DernLigne = Range("A" & Rows.Count).End(xlUp).Row
        For i = 21 To DernLigne
            Range("E" & i).FormulaLocal = "=SI(GAUCHE($A" & i & ";3)=" & Chr(34) & "ABC" & Chr(34) & ";SI(DROITE(A" & i & ";3)=" & Chr(34) & "ENT" & Chr(34) & ";$A" & i & ";" & Chr(34) & Chr(34) & ");" & Chr(34) & Chr(34) & ")"
        Next
    End Sub
    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  5. #5
    Membre averti
    Homme Profil pro
    Analyste
    Inscrit en
    Août 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste

    Informations forums :
    Inscription : Août 2017
    Messages : 20
    Par défaut Merci JP
    Salut JP,

    Merci pour tes réponses.

    Je passe par VBA car j'ai déjà une première macro qui vient m'extraire des données d'un logiciel et je veux ajouter une info lorsque je lance la macro...

    Je pense par contre, que ta formule Excel est incomplète ...

    Ce serait plutôt ça :

    SI(GAUCHE($A21;3)="ABC";1;SI(DROITE(A21;3)="ENT";2;3)) mais je n'arrive pas à le mettre en VBA.

    Une question à quoi sert Chr(34) dans ta boucle VBA ?

    Merci à toi !

  6. #6
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,
    j'avais pas compris
    si tu veux mettre 1,2,3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub Hyp()
        DernLigne = Range("A" & Rows.Count).End(xlUp).Row
        For i = 21 To DernLigne
            Range("E" & i).FormulaLocal = "=SI(GAUCHE($A" & i & ";3)=" & Chr(34) & "ABC" & Chr(34) & ";1;SI(DROITE(A" & i & ";3)=" & Chr(34) & "ENT" & Chr(34) & ";2;3))"
        Next
    End Sub
    chr(34) représente "
    c'est le " qui doit être vu dans la formule

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

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

Discussions similaires

  1. [XL-2007] VBA Formule de multiplication
    Par Shuancity dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 22/01/2016, 18h47
  2. [XL-2010] Excel VBA : formule d'arrondi dans une boucle
    Par chipster62 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/02/2015, 11h29
  3. [XL-2007] Excel-VBA : Formule longue sur plusieurs lignes erreur fin d'instruction
    Par Pauline1374 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/03/2014, 17h46
  4. [XL-2007] VBA Formule dépendante d'onglets variables
    Par marccinna dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/05/2012, 10h25
  5. [VBA] Formule avec variables
    Par tuzoenduro dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/02/2008, 17h40

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