Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Importation de colonnes d'un classeur excel vers un autre

sophia anie

XLDnaute Nouveau
Bonjour a tous,

Je me permets de revenir vers vous afin de pouvoir debuger mon code.
Le but étant de pouvoir importer des colonnes d'un classeur vers une autre en commençant par la ligne 3 afin d’éviter les titre en cellule fusionnée


Voici donc les parties que je n'arrive pas a remplir :


Sub Import()

Application.ScreenUpdating = False

Dim Fichier1 As String, Fichier2 As String
Fichier1 = ActiveWorkbook.Name

'ouvre la fenêtre de sélection du fichier à copier

OuvrirFich = Application.Dialogs(xlDialogOpen).Show("D:\x.xls")
If OuvrirFich <> False Then

Fichier2 = ActiveWorkbook.Name
'Copier les colonnes à partir de B3, C3 , D3 , E3 de la Feuil1 si sur la colonne A la cellule contient le mot par exemple "techno"

Sheets("onglet 1").Range(" ?????????").Select
Selection.Copy

'Coller les données sur le classeur contenant la macro en Feuil1 position B2
Workbooks(Fichier1).Activate
Sheets("1").Select
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

'Femeture du fichier copié
Workbooks(Fichier2).Close

Application.ScreenUpdating = True

End If

End Sub


Encore merci pour votre aide

Cordialement
 

Pierrot93

XLDnaute Barbatruc
Re : Importation de colonnes d'un classeur excel vers un autre

Bonjour,

remplace peut être ceci :
Code:
Sheets("onglet 1").Range(" ?????????").Select
Selection.Copy

par cela :
Code:
With Sheets("onglet 1")
    .Range("B3:E" & .Range("B65536").End(xlUp).Row).Copy
End With

où la dernière ligne à copier est déterminée par la présence de la dernière cellule renseignée de la colonne B

bon après midi
@+
 

sophia anie

XLDnaute Nouveau
Re : Importation de colonnes d'un classeur excel vers un autre

Merci pierrot pour ce retour rapide;

par rapport au code ci dessous, mes colonnes se sont pas forcement les une à la suite des autres exemple B D X Y, comment, je pourrais donc faire pour les choisir en modificant cette selection "B3:E"

cdt
 

sophia anie

XLDnaute Nouveau
Re : Importation de colonnes d'un classeur excel vers un autre

donc je précise , il faudrait donc pouvoir faire un choix sélective sur les colonne avec la condition également sur la colonne A :
'Copier les colonnes à partir de B3, C3 , D3 , E3 de la Feuil1 si sur la colonne A la cellule contient le mot par exemple "techno"

Pourrait tu me fournir un exemple de boucle pour que je puisse l'adapter a mon prog, je suis un peu novice

cdt
 

sophia anie

XLDnaute Nouveau
Re : Importation de colonnes d'un classeur excel vers un autre

Bonjour,

voici les deux fichier d'exemple

cdt
 

Pièces jointes

  • A.xlsx
    8.5 KB · Affichages: 26
  • B.xlsx
    12.5 KB · Affichages: 30
  • A.xlsx
    8.5 KB · Affichages: 24
  • B.xlsx
    12.5 KB · Affichages: 31
  • A.xlsx
    8.5 KB · Affichages: 32
  • B.xlsx
    12.5 KB · Affichages: 27

Pierrot93

XLDnaute Barbatruc
Re : Importation de colonnes d'un classeur excel vers un autre

Re,

et les données, je les mets où ? dans un autre onglet ou dans le classeur A ?? il faut copier la cellule avec le format ou juste les valeurs ??? manque un peu d'explication tout ca....

bon après midi
@+
 

sophia anie

XLDnaute Nouveau
Re : Importation de colonnes d'un classeur excel vers un autre

Re,

les données sont a mettre dans le classeur A et la copie des cellules se fait avec leurs valeurs ou format je pense que sa revient au même et en fonction de la condition cité dans le fichier B.

 

Pierrot93

XLDnaute Barbatruc
Re : Importation de colonnes d'un classeur excel vers un autre

Re,

les données sont a mettre dans le classeur A et la copie des cellules se fait avec leurs valeurs ou format je pense que sa revient au même

bah... pas vraiment dans le code....

code ci-dessous avec une copie de valeur, avec ce que j'ai compris de ta problèmatique.... à adapter en fonction de ton projet....


Code:
Option Explicit
Sub test()
Dim c As Range, p As String
With Workbooks("B.xlsx").Sheets("1")
    With .Range("A1", .Range("A65536").End(xlUp))
        Set c = .Find("joy", , xlValues, xlWhole, , , False)
        If Not c Is Nothing Then
            p = c.Address
            Do
                With Workbooks("A.xlsx").Sheets("1")
                    .Range("B65536").End(xlUp)(2).Value = c.Offset(0, 5)
                    .Range("C65536").End(xlUp)(2).Value = c.Offset(0, 7)
                    .Range("D65536").End(xlUp)(2).Value = c.Offset(0, 3)
                    .Range("E65536").End(xlUp)(2).Value = c.Offset(0, 1)
                End With
                Set c = .FindNext(c)
            Loop While c.Address <> p
        End If
    End With
End With
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…