Problème pour copier et coller des données avec une macro Excel

  • Initiateur de la discussion Initiateur de la discussion benadry
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

benadry

XLDnaute Occasionnel
Rebonjour le forum,


Je travaille sur une macro (toujours sur la même pour ceux qui ont lu les messages précédents !) qui permet d'extraire des données d'un fichier Excel vers un autre.

Après avoir beaucoup tâtonné et vous avoir aussi pas mal sollicité, j'ai obtenu un code qui fonctionne très bien, sous deux réserves :

1°) au lieu de faire un simple copier-coller, je voudrais faire un collage spécial sur la valeur.
En effet, Excel colle les données avec la mise en forma conditionnelle du fichier d'origine, ce qui est très gênant. Une solution de contournement consisterait à supprimer toute mise en forme conditionnelle ou mise en gras ... après avoir copié la ligne.

2°) Par ailleurs, il me semble que le code ci-dessous permet de coller les données sur la même ligne. Or, il les colle sur la même colonne !

Si quelqu'un a une idée ...


Bien cordialement.


Voici le code en question :


Code:
Sub Enreg()
Dim chemin As String, Chemin2 As String, Repertoire As String, Fichier As String, Fichier2 As String, Fichier4 As String, Rep As String
Dim pl As Range
Dim i As Long
Dim cel As Range


chemin = "G:\XXX\YYY\ZZZ\AAA\BBB\CCC\"
Chemin2 = "G:\XXX\YYY\ZZZ\AAA\BBB\"

Repertoire = Range("A9").Value & "\"
Fichier = "Fiche anomalieModèle.xlsm"
Fichier2 = Sheets("Feuil2").Range("E1").Value & ".xlsm"
Fichier4 = "Extraction.xlsx"
ActiveWorkbook.SaveAs Filename:=chemin & Repertoire & Fichier2, FileFormat:=xlOpenXMLWorkbookMacroEnabled

With Sheets("Feuil2")
    'définit la plage pl des données que l’on veut importer
    Set pl = Application.Union(.Cells(8, 5), .Cells(9, 1), .Cells(9, 2), .Cells(9, 5), .Cells(13, 2), .Cells(15, 2), .Cells(15, 5), .Cells(17, 2), .Cells(17, 5))
End With

Workbooks.Open Chemin2 & Fichier4
Application.AskToUpdateLinks = False
ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources
'Workbooks(Chemin2 & Fichier4).Activate

With ActiveWorkbook.Sheets("Feuil1")
i = .UsedRange.Rows.Count 'compte le nombre de lignes déjà utilisées dans ce fichier
    For Each cel In pl
        cel.Copy .Cells(i + 1, 1)
        i = i + 1
    Next cel
End With

ActiveWorkbook.Close SaveChanges:=True
Rep = MsgBox("Voulez-vous revenir au modèle et fermer la présente fiche anomalie ?", vbYesNo + vbQuestion, "Le programme demande votre attention")
If Rep = vbYes Then
    Workbooks.Open Filename:=chemin & Fichier
    Workbooks(Fichier2).Close SaveChanges:=False
End If
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
586
Réponses
9
Affichages
379
Réponses
5
Affichages
396
Retour