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 :

Insérer une ligne de maniere variable dans une liste de données


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Insérer une ligne de maniere variable dans une liste de données
    Bonjour à tous,

    Je souhaiterais demander l'aide de la communauté pour la finalisation d'un document Excel.

    En piece jointe, j'ai mis un fichier dans lequel on voit un premier tab "Situation Depart" et un second tab "Situation souhaitée".
    Il me faudrais une macro qui puisse copier la ligne 4 et l'insérer (coller) a chaques fois que le mot "insert" apparait dans la colonne A.
    Je l'ai fait manuellement dans le tab "Situation souhaitée" pour illustrer mon propos.


    Pourriez vous m'aider, je suis autodidacte débutant en matiére de macro excel et je butte sur ce probléme.

    Merci d'avance pour vos conseils :-)
    Fichiers attachés Fichiers attachés

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Salut.

    Tu pourrais t'inspirer de ceci
    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
    Sub rowsCopy()
      Dim Source As Range ' Cellule de départ
      Dim Target As Range ' Celluel d'arrivée
     
      Set Source = Worksheets("Source").Range("a2") ' A adapter à ton cas
      Set Target = Worksheets("Target").Range("a2") ' A adapter à ton cas
     
      Do While Not IsEmpty(Source) ' Tant que la cellule en A n'est pas vide
        If Source.Value Like "*insert*" Then ' Si Source contient "insert"
          Source.Resize(1, 2).Copy Target ' on copie 2 cellules de la ligne (remplace 2 par le nombre de colonns à copier)
          Set Target = Target(2) ' On déplace Target d'une ligne vers le bas
        End If
        Set Source = Source(2) ' On déplace Source d'une ligne vers le bas
      Loop
    End Sub

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Pierre,

    D'abord merci pour ta réponse.

    J'ai essayé d'utilisé la macro que tu m'as proposé, mais elle ne semble pas fonctionnée.
    En effet j'ai modifier mon fichier test en renomant la "Page situation" départ par "source" et en ajoutant une nouvelle page (copie de "source") que j'ai appeler "target".

    J'ai aussi changer ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Set Source = Worksheets("Source").Range("D4")
      Set Target = Worksheets("Target").Range("D4")
    Quand je lance la macro il ne se passe rien...

    Pourrais tu me dire si tu comprend pourquoi cette macro ne donne aucun changement sur ma page "target" ?

    Merci pour ton aide

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Il faudrait que tu donnes le code utilisé

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Voici ce que j'ai utilisé:

    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
    Sub rowsCopy()
      Dim Source As Range ' Cellule de départ
      Dim Target As Range ' Celluel d'arrivée
     
      Set Source = Worksheets("Source").Range("A2") ' A adapter à ton cas
      Set Target = Worksheets("Target").Range("A2") ' A adapter à ton cas
     
      Do While Not IsEmpty(Source) ' Tant que la cellule en A n'est pas vide
        If Source.Value Like "*insert*" Then ' Si Source contient "insert"
          Source.Resize(1, 2).Copy Target ' on copie 2 cellules de la ligne (remplace 2 par le nombre de colonns à copier)
          Set Target = Target(2) ' On déplace Target d'une ligne vers le bas
        End If
        Set Source = Source(2) ' On déplace Source d'une ligne vers le bas
      Loop
    End Sub

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Il me semble que tu as mis pile poil mon code

    Essaie en mode pas à pas (F8) pour voir ce qui passe sur chaque ligne. Essaie de bien comprendre le code que je t'ai donné, j'y ai mis des commentaires pour plus de facilité.

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2015
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Pierre,

    En effet le code que j'ai utlisé est le meme que celui que tu m'as envoyé. Cependant j'ai modifier mon fichier pour qu'il colle à ton code...mais ca ne focntionne pas.
    Je pensais trouver une solution facile mais ca ne semble pas être aussi simple que je le pensais...

    Tant pis je vais continuer a effectuer cette tache manuellement :-(

    Merci en tout cas d'avoir proposer ton aide :-)

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Il pourrait être plus profitable que nous modifiions ensemble le code pour qu'il colle à ton classeur.

Discussions similaires

  1. [PowerShell] double quotes et variables dans une ligne de script Powershell
    Par Aenean dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 08/12/2014, 17h55
  2. Réponses: 10
    Dernier message: 24/02/2014, 15h22
  3. Réponses: 0
    Dernier message: 06/12/2007, 11h08
  4. copier une ligne et la coller dans une nouvelle
    Par alexkickstand dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/09/2007, 20h10
  5. [MySQL] récupérer dans une boucle chaque information MySQL dans une variable différente
    Par gtenthorey dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/05/2007, 22h34

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