Fusion de cellules (lignes)

Bonjour a tous,
Je suis actuellement sur un projet vba et je bloque à un certain niveau.
En effet dans mon programmen je copie des lignes d'un tableau vers d'autre classeurs afin de procéder à une réorganisation des fichiers.

Le problème est que lorsque je copie mes lignes elles se copient sur le meme numéro de ligne que le tableau initial
Par conséquent mon collage débute parfois à la ligne 163 et je voudrais pouvoir fusionner l'ensemble des ligne située au-dessus de mon collage qui sont vides.

Si vous avez des idées ....

Merci d'avance.

2 réponses

  1. Bonjour,

    Sans voir ton code je ne peux pas te donner de réponses précises mais intuitivement je définirai une plage de données dans le classeur recevant la copie afin de ranger cette copie dans la plage créée (qu'il sera alors possible de placer n'importe où dans le classeur excel).
    Est-ce que cela répond à ta question ou suis-je hors sujet ??
    0
    1. Non tu n'es pas hors sujet mais le problème est que sur les lignes que je copie il y a plusieurs formules qui dépendent du numéro de la ligne.

      Je ne peut donc placé ma sélection de copie n'importe ou dans ma feuille .

      Voila le code de copie :

      Sub macrodouat()
      Dim DerLig As Integer
      Dim ligne As Integer

      'calcul de la dernière ligne de la feuille EnCours
      With ThisWorkbook.Sheets("TOTAL ORDER MORPHING WOMEN")
      DerLig = .Range("C" & .Rows.Count).End(xlUp).Row

      End With
      ligne = 23

      Do Until ligne > DerLig
      Range(Cells(ligne, "E"), Cells(ligne, "E")).Select
      ActiveCell.FormulaR1C1 = "=LEFT(RC[-4],2)"

      ligne = ligne + 1
      Loop

      ligne = 23

      Do Until ligne > DerLig
      If Range(Cells(ligne, "E"), Cells(ligne, "E")).Value = "BR" Then

      Range(Cells(ligne, "A"), Cells(ligne, "D")).Select
      Selection.Copy
      Sheets("BR").Select
      Range(Cells(ligne, "A"), Cells(ligne, "A")).Select
      ActiveSheet.Paste
      ThisWorkbook.Sheets("TOTAL ORDER MORPHING WOMEN").Select
      ligne = ligne + 1
      Else
      ligne = ligne + 1
      End If

      Loop

      End Sub
      0