Vba Excel :Insertion de lignes entre 2 lignes non vides

Résolu
7808622H Messages postés 331 Statut Membre -  
 foo -
Bonjour

J'aurai besoin de votre aide, pour un petit code pour lequel je n'ai pas d'idée sur la manière de faire... du moins j'ai bien l'idée mais je ne sais pas comment le "dire" en Vba

En gros ( et au vu du fichier joint ) je cherche a integrer des données entre des lignes ( non vides) ( dans le fichier test il n'y a que 3 lignes mais cela peut aller jusqu'a + de 200

Dans l'exemple du fichier joint :

- je colle les données de base dans l'onglet import

- l'idée serait que lorsque je colle les infos dans import, je lance un petit bouton magique et qu'excel, dans la feuille Resultat, m'affiche (a partir de la ligne 6 - il faut garder les infos du dessus) après chaque ligne le contenu du pavé repris dans l'onglet tmp (cellules A1:D15)

Pour se donner une idée de ce qu'il me faudrait en réél et comem je suis pas sur d'avoir été super clair, j'ai mis une copie ecran de ce que je cherche dans l'onglet "rendu final" qui est voué a ne pas etre présent en réalité

Voila si vous pouviez me donner un coup de main, ca me ferai gagner pas mal de temps plutot que de me faire du copier coller a rallonge

Un petit détail technique, je bosse sous excel 2002... je sais que parfois ca peut poser des problemes de codes

Fichier démo : https://www.cjoint.com/?0DEl04qhKqb

Merci beaucoup par avance a ceux qui pourrait me donner un solution

Bonne journée

Céd

7 réponses

  1. foo
     
    Bonjour

    voila un petit truc si j'ais bien compris

    Sub Test()
    Application.ScreenUpdating = False
    DernLig = Feuil2.Range("A" & Rows.Count).End(xlUp).Row
    Lig = 6
    For L = 1 To DernLig
    Feuil2.Range("A" & L & ":D" & L).Copy
    Feuil4.Range("A" & Lig).PasteSpecial xlPasteValues
    Lig = Lig + 1
    Next
    Feuil3.Range("A2:A13").Copy
    Feuil4.Range("A" & Lig + 5).PasteSpecial xlPasteAll
    Application.ScreenUpdating = True
    End Sub

    A+

    Maurice
    0
    1. 7808622H Messages postés 331 Statut Membre 4
       
      Re bonjour Maurice


      alors j'ai testé en mettant un tit bouton de controle


      j'ai ce rendu à l'ecran https://www.cjoint.com/?0DEoREXgV0R

      Ca n'est aps ce que j'aurai voulu,

      en gros il faudrait en ligne 6 de la feuille Resultat, le contenu de la ligne 1 de la feuille import. juste en dessous il faudrait le pavé de la feuille TMP

      Puis la seconde ligne de la feuilel import, et le pavé à la suite

      etc etc ... pour x lignes potentiellement

      D'ou mon idée reprise dans le titre je pensais plutot a ce qu'il recherche chaque ligne et qu'il y integre le pavé
      0
  2. foo
     
    Bonjour
    desoler
    alor peux etre un truc comme ca

    Sub Test()
    Application.ScreenUpdating = False
    Feuil4.Select
    DernLig = Feuil2.Range("A" & Rows.Count).End(xlUp).Row
    Lig = 6
    Rows("6:2000").Delete
    For L = 1 To DernLig
    ' Copy 1 Ligne Import
    Feuil2.Range("A" & L & ":D" & L).Copy
    Range("A" & Lig).PasteSpecial xlPasteValues
    Lig = Lig + 2
    ' Copy de Tmp
    Feuil3.Range("A2:A13").Copy
    Range("A" & Lig).PasteSpecial xlPasteAll
    Lig = Lig + 13
    Next
    Application.ScreenUpdating = True
    End Sub

    A+
    0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour a vous deux,

    votre fichier modifie, si j'ai bien compris votre besoin:

    https://www.cjoint.com/?CDErh0D77Qq

    Bonnes suite
    0
    1. 7808622H Messages postés 331 Statut Membre 4
       
      bonjour

      tout d'abord merci beaucoup , ton fichier marche nickel a quelques petites exceptions, il commence a se "coller " sur la feuilel de résultat un peu trop haut

      en effet normalement j'ai deux lignes supplementaires qui disparaissent lors de la mise a jour

      Il faudrait que la première ligne se mette en ligne 6 de la feuille résultat, et j"avoue j'ai pas trouvé sur ton code

      Merci d'avance si tu peux y jeter un coup d'oeil, sinon je rajouterai au pire un bout de code pour la mise en forme a la suite de ta macro

      bonne journée
      0
  4. foo
     
    Bonsoir

    Voila jais fait des modif

    http://cjoint.com/?3DEtCPnKosy

    A+
    0
    1. 7808622H Messages postés 331 Statut Membre 4
       
      bonjour

      merci pour ton aide, mais apparament il y a un decallage lors de la macro tout les champs partent sur le coté droit

      la solution de F89 ( au dessus) marche mieux avec quelques manques mais c'est plus ce que je cherchais , merci beaucoup en tout cas
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. foo
     
    Bonjour
    ses normal il faut simplement changer la plage range je pense que tu peux le faire HI
    il faut bien que tu travail un peux
    A+
    0
    1. 7808622H Messages postés 331 Statut Membre 4
       
      bah tu sais je me rencard pas mal avec des codes a droite a gauche et apres j'essaye de transposer un max mais là j avoue j'ai du passer a coté, quand je vois ce que tu es capable de réaliser ( j ai pas encore eu le temps d eplucher le resultat sur mon autre post, mais je sais qu'il y a deja de forte chance ( si je comprend le code) que je puisse l'utiliser sur une autre interface ( rien que le panneau qui s'ouvre avec la liste, perso je suis fan) ;-)
      0
  7. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Code modifie pour ecriture en A6 pour le premier sujet

    https://www.cjoint.com/c/CEbrJ3FiN4C

    Bonne suite
    0
    1. 7808622H Messages postés 331 Statut Membre 4
       
      génial apaprament c'est tout bon

      un big merci
      0
  8. foo
     
    Bonjour
    avec un userform pour voir
    ca peux te servir pour autre chose

    http://cjoint.com/?3EclFkabIdc

    A+

    Maurice
    0