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 :

Ajout de ligne condition [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Invité
    Invité(e)
    Par défaut Ajout de ligne condition
    Bonjour,
    J'ai une feuille dans la colonne A on a: un mot qui est une variable,un espace, un tiret,un espace, un une variable connue. Exemple "xxx - Test1". Voir feuille jointe.
    Je voudrais que lorsque pour la variable xxx Test 1 n'existe, la macro ajoute une ligne. et si elle existe ne rien faire.
    Attention, il y a plusieurs mots variables (que je ne connais pas ):
    aaa - Test1
    aaa - Test2
    aaa - Test3
    aab - Test2
    bab - Test1
    bab - Test2

    Les variables sont déjà trier par ordres alphabétiques. Je sais pas si cela change quelque chose
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Est-ce que tu peux donner un exemple ? Je n'y comprends goutte. Ajouter une ligne ? où ? Puisque la variable n'existe pas...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Désolé de ne pas voir été assez clair. Je vais essayer de faire plus simple.
    En fait ce je veux c'est si pour xxx, test1 n'existe pas je veux ajouter une ligne. Si pour xxx, test1 existe ne rien faire.
    Les écritures (aaa, ect) avant le tiret c'est un autre programme qui me les donnent, donc ça peux être n'importe quoi . Je connais seulement ce qu'il y aura après le tiret (Test1, Test2, Test3)
    aaa - Test1
    aaa - Test2
    aaa - Test3
    aab - Test2
    bab - Test1
    bab - Test2

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
        Dim C As Range
        With Sheets("Feuil1")
            For i = .Cells(.Rows.Count, 1).End(xlUp).Row To 1 Step -1
                txt = Split(.Cells(i, 1), " - ")(0) & " - " & "Test1"
                If Application.CountIf(.[A:A], txt) = 0 Then
                    Rows(i).Insert
                    .Cells(i, 1) = txt
                End If
            Next i
        End With
    End Sub

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci, c'est presque ce que je voulais. Sauf que la ligne insérée doit être vide et dois se trouver ou devrais se trouvais le test1,2,3 manquant. Par exemple si avant macro :
    aab - Test2
    bab - Test1
    bab - Test2
    yyy - Test1
    yyy - Test2

    Après macro:
    ligne vide ajoutée, car aab - Test1 n’existe pas
    aab - Test2
    ligne vide ajoutée, car aab - Test3 n’existe pas
    bab - Test1
    bab - Test2
    ligne vide ajoutée, car bab - Test3 n’existe pas
    yyy - Test1
    yyy - Test2
    ligne vide ajoutée, car yyy- Test3 n’existe pas

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Il n'y a que test1, test2 et test3 ou il y en a un nombre indéterminé ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Merci pour votre aide, j'ai réusis à résoudre le problème. Voici le code pour ceux que ça intéresse.


    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
     
    Option Explicit
     
    Sub InsertionLigne()
    Dim EnCours As String
    Dim Ligne As Long
    Dim I As Integer
    Dim Suites
     
      Suites = Array("Test1", "Test2", "Test3", "Test4")
      Application.ScreenUpdating = False
      Ligne = 1
      Do While Range("A" & Ligne) <> ""
        EnCours = Left(Range("A" & Ligne), InStr(1, Range("A" & Ligne), " -") + 2)
        For I = 0 To UBound(Suites)
          If Range("A" & Ligne) <> EnCours & Suites(I) Then
            Rows(Ligne).Insert
          End If
          Ligne = Ligne + 1
        Next I
      Loop
      Application.ScreenUpdating = True
    End Sub

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

Discussions similaires

  1. [XL-2010] Ajout de lignes sous conditions
    Par pheonix00fr dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 09/12/2011, 12h57
  2. [XL-2003] Ajouter une deuxième condition et arrêt de la boucle à la 2ème ligne vide
    Par Vadorblanc dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/10/2010, 18h29
  3. Ajouter une ligne dans une liste via un POPUP
    Par seblo_scoqi dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/01/2005, 16h20
  4. [Fichier] Ajout des lignes de doc dans arraylist
    Par 3adoula dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 29/04/2004, 22h41

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