Vba copie de données

Résolu
Martin -  
 Martin -
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

3 réponses

  1. Martin
     
    Voici un exemple :

    http://cjoint.com/?BCovTrgf7Z2

    Merci de votre aide :)

    cordialement

    Martin
    0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  3. Martin
     
    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