Copie 1 colonne d'1 fichier vers 1 autre ds la dernier colon

Bonjour le forum,

J'ai une grosse difficulté pour faire la macro, étant un débutant.

J'ai deux fichiers : un fichier de base et l'autre historique. (fichier joint)

Je souhaiterais copier la colonne G de tous les onglets avec numéro (024,026...) du fichier de base vers les onglets concernés du fichier historique.

C'est à dire la colonne G de l'onglet 024 du fichier de base vers l'onglet 024 du fichier historique dans la dernière colonne non utilisée. (ici colonne D).

J'espère être assez claire dans mes explications.

Restant à disposition.

Merci d'avance.

ety.

13historique.xlsx (15.07 Ko)
20base-forum.xlsm (127.26 Ko)

Bonjour

Les 2 fichiers dans le même répertoire (dossier)

merci Banzai64,

Effectivement, le fichier est dans le même répertoire.

C'est exactement ce que je voulais.

Je fais de petite macro mais celle ci est bien trop compliquée .

Si ce n'est pas trop demandé, peux tu m'expliquer les grandes lignes de cette macro.

Merci encore.

Ety

Bonjour

Dans les grandes lignes

Vérification si le fichier "Historique.xlsx" existe

Si oui on l'ouvre

Pour chaque feuille, du fichier de principal, (à partir de la 2éme) on vérifie si la feuille existe bien dans le fichier "Historique.xlsx"

Si oui on recherche la première colonne libre

On fait la copie

On passe à la feuille suivante

etc ...

On ferme le fichier "Historique.xlsx" en l'enregistrant

C'est fini

Merci beaucoup Banzai64.

Ety

Re Banzai64,

J'ai copie la macro dans mon fichier d'origine et ça beug

J'ai modifié la ligne : For I = 7 To ThisWorkbook.Sheets.Count, car la copie doit commencer au 7 ième onglet

L'erreur est la suivante : Erreur d'execution '91' variable de bloc With non définie. Je clic sur debogage est la ligne est :

DerCol = .Cells.Find(what:="*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column + 1

Auriez vous une idée?

ety

Et j'avais oublié, je voudrais aussi coller les données de la colonne G en valeurs.

merci d'avance.

ety

Bonjour

Sans le fichier en cause cela ne va pas être facile de trouver la cause

Cette instruction sert à trouver la 1ère colonne Vide

Une question : Tes pages dans le fichier "Historique.xlsx" sont elles protégées ?

Pour copier juste les valeurs

Modifie la macro

        With .Sheets(ThisWorkbook.Sheets(I).Name)
          DerCol = .Cells.Find(what:="*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column + 1
          ThisWorkbook.Sheets(I).Columns("G").Copy
          .Cells(1, DerCol).PasteSpecial Paste:=xlPasteValues
        End With

Voici les fichiers.

Merci pour ton aide.

ety


oups voici l'autre fichier

Bonjour

Le problème vient de la page "Feuil3"

Si tu en as l'utilité

Déplace la avant les feuilles à traiter (ne pas oublier de modifier dans la macro

For I = 7 To ThisWorkbook.Sheets.Count 

Sinon supprime la

Modifie la fin de la macro pour supprimer un message d'erreur (Le presse papier contient encore des données)

    .Close savechanges:=True ' On ferme le fichier "Historique.xlsx" en l'enregistrant
    '.Close savechanges:=False
  End With
  Application.CutCopyMode = False
  If Len(Msg) > 0 Then
    MsgBox Mid(Msg, 2)
  End If
  MsgBox "Terminé"
End Sub

Merci beaucoup Banzai64

C'était juste cette foutue feuil3.

dernière petite chose, lors de la copie en valeur, je souhaite garder le format de la colonne.

Encore merci pour le temps que tu m'as consacré.

ety

Bonjour

Rajoute cette ligne

          ThisWorkbook.Sheets(I).Columns("G").Copy ' On fait la copie de la colonne G
          .Cells(1, DerCol).PasteSpecial Paste:=xlPasteValues
          .Cells(1, DerCol).PasteSpecial Paste:=xlPasteFormats
        End With
      End If
    Next I ' on passe à la feuille suivante

Milles merci

ety.

Rechercher des sujets similaires à "copie colonne fichier dernier colon"