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 :

Insertion d'une ligne selon à partir d'une variable


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
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Par défaut Insertion d'une ligne selon à partir d'une variable
    Bonjour tout le monde,

    J'ai mes lignes sur une feuille qui sont séparées en deux grandes catégories, les deux étant séparées par une ligne intitulée "Fin de prestation".
    Je souhaite lorsque certaines conditions sont remplies, déplacer une ligne de la première à la deuxième catégorie.

    Donc mon problème c'est que pour le moment je fait:

    Code vb : 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
     
    'Je cherche la ligne séparatrice de mes deux catégories
    For I = 1 To 60
        If Cells(I, 3).Value = "Fin de prestation" Then
            Insertion = I
        End If
    Next
     
    'Je parcours ma première catégorie
    For intCpt = 6 To IntNbRow
     
              'Si condition remplie
         If Range("J" & intCpt).Value < Cells(1, 1).Value And Cells(intCpt, 2).Value <> 0 Then
     
                 'On met en gris
            With Range("A" & intCpt & ":SH" & intCpt).Interior
                 .ColorIndex = 15
                 .Pattern = xlSolid
             End With
     
                'On insert une ligne en début de deuxième catégorie
             'La partie de code qui me pose problème
     
             End With
         End If
    Next

    Je vous épargne les déclarations de variables.
    Deux points bloquant:
    -Pour le moment mon idée c'est d'insérer en dessous de ma ligne séparatrice mais si je fais:
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
      Rows("Insertion:Insertion").Insert Shift:=xlDown
    Ben évidemment il ne comprend pas parce que Insertion c'est pas renvoyé à sa valeur. J'ai essayé plein de syntaxes mais impossible de trouver!

    -Pour copier coller la seule méthode que j'ai trouvé c'est de sélectionner la ligne et de la copier, sélectionner la nouvelle ligne, coller, supprimer la ligne d'origine. Mais j'ai beaucoup lu sur le forum qu'il fallait éviter de passer par Activate et Select donc je suis preneur si vous avez une alternative.

    Voilà! J'ai parcouru plein de sujets différents mais j'ai l'impression que rows().insert shift:)xlDown c'est vraiment ce qu'il y a de mieux pour ma situation donc j'aimerais bien faire fonctionner l'instruction!

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    si la cellule "Fin de prestation" est unique dans la feuille de calculs
    une solution simple et évidente est de juste la nommer !

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Stockholm, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    pourquoi boucler sur ta colonne pour cherche la ligne contenant "Fin de prestation" ?

    trouve-là via Find()


    et pour l'insertion, il faut couper (Cut) la ligne et ensuite l'insérer (Insert)
    dans ta ligne de code d'insertion, tu as mis ta variable contenant le numéro de la ligne entre guillemet, du coup c'est devenu une chaine de caractère

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Rows(MaLigneADeplacer).Cut
    Rows(Insertion & ":" & Insertion).Insert Shift:=xlDown

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 14
    Par défaut
    Bon, ben c'est genre parfait

    Merci pour l'astuce du find et du cut/insert!

    Et surtout merci pour l'explication sur les guillemets, je savais que ça transformait en chaîne de caractères mais je n'avais pas compris qu'ils n'étaient pas obligatoires, que mon Insertion était déjà accepté comme un nombre puisque c'est sa valeur.

    Du coup problème intégralement résolu! Merci beaucoup

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/01/2011, 14h01
  2. Réponses: 4
    Dernier message: 10/10/2010, 11h46
  3. Masquer une ligne selon resultat dans une colonne
    Par amne26 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/10/2008, 23h45
  4. [VBA-E]Selection d'une ligne a partir d'une certaine colonne
    Par deathsurfer dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 29/06/2006, 16h36
  5. lancer une mdb a partir d'une ligne de commande
    Par dpie dans le forum Access
    Réponses: 5
    Dernier message: 30/11/2004, 15h01

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