Faire un copier coller sur la première ligne vide
Fermé
Sphinxitos
-
15 juil. 2016 à 12:11
thev Messages postés 1776 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 9 mars 2023 - 15 juil. 2016 à 18:22
thev Messages postés 1776 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 9 mars 2023 - 15 juil. 2016 à 18:22
A voir également:
- Faire un copier coller sur la première ligne vide
- Coeur vide ✓ - Forum Internet / Réseaux sociaux
- Dessin a copier coller ✓ - Forum Internet / Réseaux sociaux
- Aller à la ligne excel - Guide
- Premiere pro gratuit - Télécharger - Montage & Édition
- Comment ne pas apparaître en ligne sur whatsapp - Guide
1 réponse
thev
Messages postés
1776
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
9 mars 2023
670
15 juil. 2016 à 18:22
15 juil. 2016 à 18:22
Bonjour,
Essayer ce code
Essayer ce code
Sub ImporterFacturation()
Dim Fichier, WbkCopy As Workbook, WbkColle As Workbook
Dim Colonnes(), Col As Integer, Resultat As Variant
Dim à_copier, cellule_début As Range
'On attribue à la variable WbkColle le fichier actuel (celui qui contient la macro)
Set WbkColle = ThisWorkbook
'A adapter : Nom des entêtes de colonnes à importer
Colonnes = Array("Blanket PO", "Invoice number", "Material Code sent", "Material Code returned", "Serial number sent", "Serial number returned", "Service executed", "Repair price", "Currency", "Delivery date", "Work order number", "Work order line number", "Repair Center Product Code", "VA Total", "MI Total")
'Sélection du fichier
Fichier = Application.GetOpenFilename("Fichiers Excels, *.xls*")
'En cas de clic sur "ANNULER"
If Fichier <> False Then
'On ouvre le fichier en question
Set WbkCopy = Workbooks.Open(Fichier)
With WbkCopy.Sheets("Export").UsedRange '==> ADAPTER NOM de la feuille
'Boucle sur toutes les entêtes des colonnes
For Each colonne In .Columns ' colonnes utilisées
'teste si l'entête correspond à un des noms des colonnes à copier
Resultat = Application.Match(colonne.Rows(1), Colonnes, 0)
'Si l'entête est trouvée (colonne à copier)
If Not IsError(Resultat) Then
'Copié - Collé ==> ADAPTER NOM de la feuille ou coller ("Rapport CA" à remplacer)
If Not à_copier Is Nothing Then
Set à_copier = Union(à_copier, colonne)
Else
Set à_copier = colonne
End If
End If
Next colonne
End With
' copie à partir de la première cellule vide
With WbkColle.Sheets("Rapport CA")
Set cellule_début = .Columns("A").Find("", SearchOrder:=xlRows, SearchDirection:=xlNext) 'première cellule vide
If cellule_début Is Nothing Then Set cellule_début = .[A1] 'si feuille vierge, première cellule vide = A1
à_copier.Copy cellule_début
End With
WbkCopy.Close
End If
Set WbkCopy = Nothing
Set WbkColle = Nothing
End Sub