Copier certaines colonnes d'un onglet à un autre

Bonjour

J'ai un fichier avec 2 onglets: general et Mina

Je souhaite copier par macro des données de l'onglet Mina vers l'onglet general, et que les données copiées s'intègrent toujours sous la dernière ligne remplie dans l'onglet "general" (colonne B comme référence afin de savoir si la ligne est remplie ou non).

Les colonnes qui sont recopiées sont uniquement les suivantes: "B", "C", "D", "F", "G", "I", "J", "K", "L"

La macro suivante fonctionne presque mais elle copie le titre en ligne 2 (la ligne de titre du tableau est la même dans les deux onglets), c'est à dire que la première ligne de données commence à la ligne 3.

Je joins le fichier pour mieux illustrer le problème (la macro fonctionne avec le bouton "add" dans l'onglet general)

Merci d'avance!!

Sub Get_Data() ' COPY DATA FROM MINA SHEET TO GENERAL SHEET

Dim lastrowOnline As Long, LastRow As Long

Dim arr1, arr2, i As Integer

With Sheets("Mina")

lastrowMina = .Cells(.Rows.Count, "B").End(xlUp).Row + 1

End With

arr1 = Array("B", "C", "D", "F", "G", "I", "J", "K", "L")

arr2 = Array("B", "C", "D", "F", "G", "I", "J", "K", "L")

For i = LBound(arr1) To UBound(arr1)

With Sheets("Mina")

ActiveSheet.Unprotect "obrat"

LastRow = Application.Max(1, .Cells(.Rows.Count, arr1(i)).End(xlUp).Row)

.Range(.Cells(3, arr1(i)), .Cells(LastRow, arr1(i))).Copy

Sheets("general").Range(arr2(i) & lastrowMina).PasteSpecial xlPasteValues

Sheets("general").Activate

ActiveSheet.Protect "obrat", True, True

End With

Next

Application.CutCopyMode = False

End Sub

Bonjour Eric,

je te retourne ton fichier modifié :

* regarde la 1ère feuille "general"

* va sur la 3ème feuille "Mina"

* Ctrl e ➯ travail effectué


Alt F11 pour voir le code VBA, puis revenir sur Excel

si besoin, tu peux demander une adaptation.

merci de me dire si ça te convient.

dhany

Bonjour Dhany!

Tout fonctionne!

Mais la macro ne fonctionne pas lorsque je la lie a un bouton.

Lorsque j'appuie sur le bouton de commande, cela n'active pas la macro...

voilà, j'ai ajouté un bouton dans ce fichier :

dhany

dans votre fichier cela fonctionne.

Mais quand je lie le bouton à la macro chez moi ça n'a aucun effet lorsque j'appuie sur le bouton.

Savez-vous pourquoi ?

non, je ne sais pas ; pour t'aider davantage, il faudrait ton classeur (sans données confidentielles) ; pour cela, tu peux utiliser le bouton « Ajouter des fichiers » qui est situé juste sous la fenêtre d'édition de ton post.

dhany

ci joint le fichier

le bouton pour copier est le dessin avec les deux papiers..

la macro à lier est "get data"

merci d'avance!

12rooming-list.xlsm (292.89 Ko)
tu a écrit :

le bouton pour copier est le dessin avec les deux papiers.

oui, j'l'ai vu sur la 1ère feuille "general" ; près de la cellule U1.

c'est normal qu'ça marche pas : ma macro est faite pour marcher seulement depuis la feuille "Mina", donc le bouton doit être sur cette feuille ; note que c'est plus logique de voir d'abord les infos qu'on va copier avant de cliquer sur le bouton !

patiente un moment, et je posterai ton fichier corrigé.

dhany

voici ton fichier modifié :

16rooming-list.xlsm (291.13 Ko)

ton bouton avec 2 papiers marche très bien !

dhany

Donc si je comprends bien, il faut que le bouton soit placé dans l'onglet qu'il faut copier ?

non, c'est car ma macro est conçue pour faire la copie à partir de la feuille "Mina" ; je vais faire une autre version où la copie sera à partir de la feuille "general", et comme avant, le bouton sera sur cette feuille "general".

dhany

Pas besoin de refaire une macro.

Explique moi STP juste quelles sont les differences...

voici la nouvelle version :

11rooming-list.xlsm (294.52 Ko)

si besoin, tu peux demander une autre adaptation.

merci de me donner ton avis.


edit : on s'est croisés ; c'était déjà fait !

dhany

tu verras les différences en lisant le nouveau code VBA de la macro.

de plus, j'ai ajouté quelque chose de très pratique !

dhany

ok je vais regarder, merci!

Mais il y a petit problème.

Les dates inscrites dans les colonnes F et G sont "perdues" lords du copiage vers l'onglet général.

A la place de dates c'est un numéro qui apparait.

En revanche les cellules des colonnes F et G de l'onglet général sont définies au format date car lorsque j'écris moi-même une date, c'est bon.

Le problème n'apparait que lors du transfert des dates de l'autre onglet...

essaye cette version :

15rooming-list.xlsm (294.15 Ko)

dhany

super

le problème est réglé!!

MERCI

merci pour ton retour, et pour avoir passé le sujet en résolu !

bonne continuation !

dhany

pas de quoi, c'est normal!!

Salut Dhany

Je viens de faire attention à un truc..

Lorsque j'active la macro d'envoi de l'email (que ce soit si j'annule dès le début ou si j'exécute la macro d'envoi), automatiquement l'autre macro (celle qui copie de l'onglet à l'autre) s'exécute.

Sans que je n'ai rien demandé

Ainsi à chaque fois qu'on appui sur la commande "envoi" à l'aide du bouton, même si on clique tout de suite sur Cancel, les données de l'onglet Mina sont copiées vers l'onglet General...

Je voulais que l'opération de copiage ne soit faite uniquement si j'exécute la macro de copiage (GET DATA)

Tu peux m'aider à résoudre ce problème? (J'espère que ce n'est pas la "surprise" que tu m'as préparé )

Ci joint le fichier à jour

6rooming-list.xlsm (299.10 Ko)
Rechercher des sujets similaires à "copier certaines colonnes onglet"