Vba copie de données

Résolu/Fermé
Martin - 14 mars 2012 à 18:51
 Martin - 15 mars 2012 à 14:03
Bonjour,

Voici ce que j'essaie de faire, mais sans résultats:

Depuis Fichier2, Ouvrir Fichier1 à partir d'un bouton de commande (Jusque la pas de problème). Ensuite :

Copier cellules C3:DerniereCelluleUtiliséeDeColonneC (Sans copier les cellules masquées);
Copier cellules E3:DerniereCelluleUtiliséeDeColonneE (Sans copier les cellules masquées);
Copier cellules K3:DerniereCelluleUtiliséeDeColonneK (Sans copier les cellules masquées);

Fermer Fichier1.

Coller ces cellules dans à partir de la dernière ligne utilisée de la colonne B, F et J du fichier2


Ca me semblait simple jusqu'à ce que je bloque définitivement sur mon pb durant plusieurs heures :(

Merci de votre aide !

Martin

A voir également:

3 réponses

Voici un exemple :

http://cjoint.com/?BCovTrgf7Z2

Merci de votre aide :)

cordialement

Martin
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
15 mars 2012 à 08:24
Bonjour,

avec l'enregistreur de macro avant de passer à VB...
tu sélectionnes ta zone
-rechercher-sélectionner
-atteindre-cellules
-cellules visibles seulement
-copier-coller

et tu élagues pour passer en code "propre" VBA en incluant éventuellement les variables : colonnes, dernière ligne... par ex
0
Merci de ta réponse,

Voici ce que j'ai comme code pour l'instant, mais je n'arrive pas à le faire fonctionner ....

Y a t-il une erreur pour que le je puisse faire un copier / coller à partir d'un fichier situé dans un autre dossier de mon ordinateur ?

Private Sub CommandButton1_Click()

Dim objShell As Object, objFolder As Object
Dim Chemin As String, fichier As String, Tabl, Wbk As Workbook
Dim WsA As Worksheet
Dim WsB As Worksheet

Set Wbk = ActiveWorkbook
Set WsA = Sheets("Extraction")
Set WsB = Sheets("Fichier 2")
  

    
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)

If objFolder Is Nothing Then
    MsgBox "Abandon opérateur", vbCritical, "Annulation"
Else
    Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path & "\"
    fichier = Dir(Chemin & "*.xls")
    Application.ScreenUpdating = False


  On Error Resume Next
  WsA.Range("C3:C" & WsA.Range("C" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeVisible).Copy _
                                  WsB.Range("B" & Rows.Count).End(xlUp).Offset(1, 0)
  WsA.Range("E3:E" & WsA.Range("E" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeVisible).Copy _
                                  WsB.Range("F" & Rows.Count).End(xlUp).Offset(1, 0)
  WsA.Range("K3:K" & WsA.Range("K" & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeVisible).Copy _
                                  WsB.Range("J" & Rows.Count).End(xlUp).Offset(1, 0)
  On Error GoTo 0
     

    End If
    End Sub


Je veux prendre les colonnes c3:c, e3:e et k3:k du fichier extraction et les copier dans les colonnes B, F et J de mon fichier2
Martin
0