Macro Copie Coller

elguau

XLDnaute Junior
Hello à tous,

Je débute dans vba et j'ai le code suivant :

Code:
Public Const PathSuivi = "\\mes docs\"
Public Const FichierRef = "Référentiel.xls"

Sub Mise_a_Jour_Ref()

Dim moi As Workbook
Dim Test_Open As Boolean

Set moi = ActiveWorkbook
Test_Open = True

    On Error GoTo error_open
    Windows(FichierRef).Activate
    On Error GoTo 0

    Workbooks(FichierRef).Sheets("Strategies").Cells.Copy Destination:=moi.Sheets("Strategies").Cells(1, 1)
    moi.Activate
    
    If Test_Open = False Then Workbooks(FichierRef).Close savechanges:=False
        
Exit Sub

error_open:
Workbooks.Open (PathSuivi & FichierRef), UpdateLinks:=False, ReadOnly:=True
Test_Open = False
Resume
End Sub

Petite question :

la fueille en question va de la colonne A à BA, ligne 1 à 60 et je veux copier seulement quelques colonnes(A, C, E, F, H, G, I, Z) en écartant les lignes vides( lignes 17, 42 et 50) mais je n'arrive pas à créer ce code. KJe sais que cela ne doit pas être compliqué à faire mais je suis bloqué.

Merci beaucoup pour votre aide.

David
 

Cousinhub

XLDnaute Barbatruc
Re : Macro Copie Coller

Bonjour
Pas mal pour un débutant...
une solution empirique...

Code:
.....
.....
moi.Activate
    Sheets("Strategies").Range("B:B,D:E,J:Y,AA:AB").EntireColumn.Delete
    Sheets("Strategies").Range("17:17,42:42,50:50").EntireRow.Delete
    If Test_Open = False Then Workbooks(FichierRef).Close savechanges:=False
.....
.....
 

elguau

XLDnaute Junior
Re : Macro Copie Coller

Merci bhbh

ça marche !

mais une petite question :
si j'utilise la commande .Range("a:a,d:d").copy tout va bien.
mais avec la commande .Columns("a:a,d:d").copy ça ne va pas.
car si je fais .Columns("a:d").copy les colonnes a à d sont copiées.
Tu peux me dire pourquoi?

Merci d'avance.
 

Cousinhub

XLDnaute Barbatruc
Re : Macro Copie Coller

Re-,
regarde avec l'enregistreur de macro la syntaxe utilisée pour sélectionner ou copier des colonnes non contigües
La syntaxe pour sélectionner des colonnes contigües est bien celle que tu utilises (Columns("a:d")), par contre si elles ne le sont pas, il faut utiliser l'objet Range (Range("A:A, D;D"))
Regarde aussi l'aide (F1), ton meilleur ami...;)
 

Discussions similaires

Statistiques des forums

Discussions
312 427
Messages
2 088 308
Membres
103 813
dernier inscrit
mehdifr