[RESOLU]Coller une ligne a la dernière ligne d'un tableau.

azertym

XLDnaute Nouveau
Bonjour à tous,

J'ai un petit problème concernant le copier coller entre 2 classeurs. Je souhaite coller la ligne 2 du classeur code.xls à la fin du tableau base.xls

J'avais écris ce code ci :
Code:
Option Explicit
Function Ajout_Base()

Dim Plage As Range
Dim Cellule As Range

'Ouverture du classeur base.xls
Workbooks.Open Filename:= _
"C:\ptc_config\config_perso_wf2\Macros_Articles\code_xls\base.xls"

'Insertion d'une nouvelle ligne
Workbooks("base.xls").Worksheets("Feuil1").Rows("3:3").Insert Shift:=xlDown
    
'Copier de la ligne 2 du classeur code.xls vers la ligne 3 de base.xls
Workbooks("code.xls").Worksheets("Feuil1").Range("A2:H2").Copy Destination:=Workbooks("base.xls").Worksheets("Feuil1").Range("A3")

'Effacer les A du format
Set Plage = Range("D3:D200")
  For Each Cellule In Plage
    Cellule.Value = Replace(Cellule.Value, "A", "")
  Next Cellule
  
'Effacer les espaces de base.xls.
Call SupprEspaces 'Module 4

'Effacer les caractères (ï>>¿) BOM (UTF_8)
Call SupprimerCar 'Module 5


End Function

Ce code permettait d'insérer une nouvelle ligne à la ligne 3 du tableau. Le problème c'est que le classeur excel dispose d'une mise en forme conditionnelle, à chaque insertion de ligne cette mise en forme est donc perdu.

Donc 2 possibilités s'offre à moi:
- Soit je trouve une solution pour insérer une ligne en début de tableau en gardant le format.
- Soit je détecte la dernière ligne du tableau et je colle cette fameuse ligne.

Je préférerai quand même la première solution mais je ne sais pas si c'est possible de faire cela.

Merci d'avance !
 
Dernière édition:

azertym

XLDnaute Nouveau
Re : Coller une ligne a la dernière ligne d'un tableau.

Oui justement j'allais le faire Bruno ;). J'aime pas les topics sans réponses :

Alors voila, comme l'a dit Bruno j'ai posté ma question sur un autre forum ou l'on m'a plus ou moins orienté vers une solution. Le problème venait du fait que je copiais l'ensemble de la ligne code.xls (valeur et format). J'ai donc forcé la copie des valeurs ce qui donne :

Code:
Sub Ajout_Base()
      Dim Plage As Range
      Dim Cellule As Range
      
      'Ouverture du classeur base.xls
     Workbooks.Open Filename:= _
                     "C:\ptc_config\config_perso_wf2\Macros_Articles\code_xls\base.xls"
                     
      'Insertion d'une nouvelle ligne sans MFC
     Workbooks("base.xls").Worksheets("Feuil1").Rows("3:3").Insert Shift:=xlDown
     
      ' Copier coller la MFC de la ligne du dessous
     Workbooks("base.xls").Worksheets("Feuil1").Range("A5").Copy
      Workbooks("base.xls").Worksheets("Feuil1").Range("A3").PasteSpecial Paste:=xlPasteFormats
      
       'Copier de la ligne 2 du classeur code.xls vers la ligne 3 de base.xls
     Workbooks("code.xls").Worksheets("Feuil1").Range("A2:H2").Copy
     Workbooks("base.xls").Worksheets("Feuil1").Range("A3").PasteSpecial Paste:=xlPasteValues

      
      'Effacer les A du format
     Set Plage = Range("D3:D200")
      For Each Cellule In Plage
        Cellule.Value = Replace(Cellule.Value, "A", "")
      Next Cellule
      
      'Effacer les espaces de base.xls.
     Call SupprEspaces  'Module 4
     
     'Effacer les caractères (ï>>¿) BOM (UTF_8)
     Call SupprimerCar  'Module 5
    End Sub

Voila je pense que ca peut servir à plusieurs personnes ;)
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 329
Membres
103 517
dernier inscrit
hbenaoun63