Microsoft 365 Coller les données dans la premiere ligne vide Répondre

  • Initiateur de la discussion Initiateur de la discussion Saloumakh
  • 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 !

Saloumakh

XLDnaute Nouveau
Bonjour tout le monde,

je vient vers vous pour solliciter votre aide pour alimenter une base de données à partir d'une liste des réclamations.

J'ai essayé de commencer mon code mais puisque je suis encore débutante en VBA, je suis bloquée sur :

- Le fait de coller les données que j'importe à chaque fois dans la premiere ligne vide et non pas ecraser à chaque fois les données qui sont déja sur le document.

je joint mon code à ce message.

je vous remercie par avance pour votre aide 🥰😊

VB:
Sub Recupererdata()

    'Déclaration des variables
    Dim ListeFichier As Variant
    Dim MonClasseur As Workbook
   
    'On désactive le presse papier et le rafraichissement de l'écran
   
    Application.CutCopyMode = False
    Application.ScreenUpdating = False
   
   
    'On récupére le fichier des données à copier
    ListeFichier = Application.GetOpenFilename(Title:="Sélectionner votre liste des DCs ", _
                   filefilter:="Fichiers Excel(*.xls*),*xls*", ButtonText:="Cliquez")
    'Prévoir le cas du bouton Annuler
    If ListeFichier <> False Then
        'On affecte le fichier sélectionné
        Set MonClasseur = Application.Workbooks.Open(ListeFichier)
        'On copie les données de la feuille 1 du classeur séléctionné
        MonClasseur.Sheets(1).Range("A1").CurrentRegion.Copy
       
       
        'On colle les données dans la premiére ligne vide
        ThisWorkbook.ActiveSheet.Range("A" & Rows.Count).End(xlUp).PasteSpecial xlPasteValues
       
     
        'On désactive les messages d'alerte de Microsoft
        Application.DisplayAlerts = False
        'On ferme le classeur source
        MonClasseur.Close
    End If
   
       'On réactive le presse papier et le rafraichissement de l'écran
    Application.CutCopyMode = True
    Application.ScreenUpdating = True
   

End Sub
 
Bonjour Saloumakh,
Pour le collage essayez :
VB:
'On colle les données dans la premiére ligne vide
With ThisWorkbook.ActiveSheet
    DerLig = 1 + .Range("A65500").End(xlUp).Row
    .Cells(DerLig, 1).PasteSpecial xlPasteValues
End With
Je vous remercie tout d'abord pour votre réponse , mais le probléme maintenant c'est que quand j'importe les données ça s'ajoutent sur la ligne suivante (ligne 3 puisque le remplissage a commencé depuis la ligne 2 et puis ça remplie la ligne 4 et ainsi de suite) qu'est déja remplie en fait, et non pas sur la ligne vide.
 
Vérifiez les données copiées.
Dans la PJ j'ai suis resté près de votre code ( les données à copiées sont en feuille 2 ) et ce que je vous ai donné fonctionne correctement. sinon donnez nous des fichiers tests. En aveugle, on ne peut que supputé.
Testez.
 

Pièces jointes

En fait, je voulais pas importer des informations depuis la feuille 2

Ce que je voulais réaliser dans mon programme c'est :
Lui demander d'aller récupérer un fichier spécifique ( excel ) ( contient réguliérement 32 colonnes et des miliers de lignes ça dépend de chaque fichier) et d'importer les données (toujours dans la feuille 1) de ce dernier qu'on a sélectionné et de les copier dans notre classeur et à chaque fois que j'importe un fichier à mon classeur , les informations déja dedans doivent pas étre effacer , au contraire, ça doit étre une suite ( ce qui veut dire dans la premiére ligne vide qu'il a trouve)

PS: j'ai un probleme pour joindre un fichier avec mon message
Merci à vous
 
Evidemment j'avais compris.
Mais c'était juste un ex, que les données arrive d'ici ou de là, c'est pareil.
Ce que je voulais vous montrer c'est que le code de collage que je vous ai donné marche.
D'où, si vous l'avez lu, mon :
Vérifiez les données copiées.
car si le collage marche, c'est le copie qui est défaillant.
 
Oui effectivement, j'ai essayé et ça fonctionne! Merciiiiiii
Le petit souci que j'ai encore,c'est que la base de donnée que j'importe, est collé sans avoir conserver la mise en forme ( police, bordure, couleur....) qu'est ce que je vais modifier pour que je garde exactement la méme mise en forme svp ?
 
Essayez de remplacer :
VB:
        'On colle les données dans la premiére ligne vide
        ThisWorkbook.ActiveSheet.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
par :
Code:
'On colle les données dans la premiére ligne vide
With ThisWorkbook.ActiveSheet.Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
        .PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
        .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks :=False, Transpose:=False
End With
 
il m'affiche ça en fait
Capture d’écran 2021-04-01 135244.png
 
- 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
6
Affichages
734
Réponses
5
Affichages
813
Réponses
0
Affichages
696
Retour