Copier en feuille deux

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Clochard

XLDnaute Impliqué
Bonjour le Forum.....

J'inscris les noms des joueurs dans deux colonnes en page 1.... une colonne pour les femmes et une pour les hommes.... les noms ne sont pas inscrient à la suite un de l'autre... il y a des espaces de quelques lignes parfois

J'essaie de les faire s'inscrirent automatiquement une à la suite de l'autre sans espace de ligne en page 2 dans une seule colonne divisée en 2... les femmes en haut et les hommes en bas

Croyez-vous cela possible.... je n'y arrive pas

Merci beaucoup si vous me suggérez quelque chose

Bonne journée
Clochard
 

Pièces jointes

Re : Copier en feuille deux

Re clochard,

La fatigue sans doute, je me suis trompé de fichier.
Re-charge le fichier de mon post précédent, il devrait fonctionner maintenant.

Sans macro, il y a bien les formules matricielles mais il faut que tu aies autant de lignes dans la zone destination que dans la zone source.

sinon Filtrage avancé, tu te positionnes sur la cellule de destination, tu cliques sur l'onglet 'Données' du Ruban, dans le groupe 'Filtrer' tu as un petit entonoir avec un crayon et trois points. Tu cliques. Dans la zone 'Plage' tu sélectionnes les données de la feuil1, tu laisses la zone 'critères' vierge et tu coches extraction sans doublons, puis Ok.

Par contre cette solution copie les formats en même temps

A bientôt

Je vais essayé.

A+
 
Dernière modification par un modérateur:
Re : Copier en feuille deux

Salut Hasco et le Forum

J'ai modifié le numéro de ligne pour l'adapter à mon fichier qui est beaucoup plus volumineux... ça fonctionne très bien...

Mais étant donné que je suis nul en macro...j'arrive pas à installer un bouton pour l'activer

Aussi si je change le nom de la feuille 2... pour FeuilJoueurs & pointage ça ne fonctionne plus????

Ma feuillle 1 se nomme "Joueur(euse)s" et la feuille 2 "Joueurs & pointages"

Excuse moi de revenir te demander un conseil....

Merci
Clochard
 
Dernière édition:
Re : Copier en feuille deux

Bonjour Clochard,

Alors:

Activer la feuille ou sont les données à extraire 'Joueur(euse)s'

A - Afficher l'onglet Développeur:
1 - Cliquer sur le bouton Microsoft Office puis sur Options Excel
2 - Cliquer sur Standard, puis activez la case à cocher Afficher l'onglet Développeur dans le ruban.
B - Ajouter un bouton sur une feuille:
1- Ruban/ Onglet Développeur/Deuxième groupe, cliquer sur le bouton Insérer (bouton avec une valise et des outils croisés) dans le sous-groupe 'contôles activeX' cliquer sur le bouton rectangulaire gris (Le premier du sous groupe).

2 - Le pointeur de souris se change en croix, déssiner un bouton sur la feuille. Il affiche 'CommandButtonN' ou N est un numéro.

3 - Click-droit sur se bouton -> dans le menu choisir 'Propriétés'

4 - Localiser la ligne 'Caption' dans la fenêtre des propriétés qui c'est affichée. Tapez dans la colonne à droite de 'Caption' le texte que tu veux voir s'afficher sur le bouton.

5 - Refermer la fenêtre 'Propriétés' (Croix en haut à droite)

6 - double-click sur le bouton une fenêtre s'ouvre avec une ossature de procédure évènementielle qui doit ressembler à:
Code:
Private Sub CommandButton1_Click()
End Sub
7 - Entre ces deux lignes insérer les lignes de codes suivantes pour que cela ressemble à :
Code:
Private Sub CommandButton1_Click()
    Dim Plage As Range
    On Error GoTo FinCopie
    Application.ScreenUpdating = False
 
    'Femmes
    Set Plage = Range("[SIZE=3][COLOR=red]B2[/COLOR][/SIZE]", Range("B" & Rows.Count).End(xlUp))
    Plage.Cells.SpecialCells(xlCellTypeConstants).Copy
 
    Sheets("[SIZE=3][COLOR=blue]Joueurs & pointages[/COLOR][/SIZE]").Range("[SIZE=3][COLOR=lime]B3[/COLOR][/SIZE]").PasteSpecial xlPasteValues
 
    'Hommes
    Set Plage = Range("[SIZE=3][COLOR=red]C2[/COLOR][/SIZE]", Range("C" & Rows.Count).End(xlUp))
     Plage.Cells.SpecialCells(xlCellTypeConstants).Copy
 
    Sheets("[SIZE=3][COLOR=blue]Joueurs & pointages[/COLOR][/SIZE]").Range("[SIZE=3][COLOR=lime]B19[/COLOR][/SIZE]").PasteSpecial xlPasteValues
    Application.CutCopyMode = False
 
FinCopie:
    Application.ScreenUpdating = True
End Sub
Où:
B2 est la première cellules contenant le Nom d'une JoueuseJoueurs & pointages est le nom de la feuille destination des données extraites et B3 est l'adresse de la première cellule de destination des Joueuses.
Je te laisse deviner pour la suite: les Joueurs

8 - Fermer la fenêtre d'édition du code (VBE)

9 - Désactiver le bouton 'Mode création' (à coté du bouton 'insérer' sur le ruban)

10 - cliquer sur le bouton que tu viens de créer et la macro se lance.
En espérant que tout ce passe bien.

A+
 
Re : Copier en feuille deux

Clochard tu m'a adressé cette demande en MP:

Clochard à dit:
Crois-tu possible d'ajouter quelque chose qui puisse effacer les noms transférer dans la feuille "Joueurs & Pointages...
Parce que même si j'efface les noms des joueurs ils demeurent en place sur les autre feuilles?

si tu veux bien nous allons rester dans ce fil de discussion, qui peut éventuellement interresser quelqu'un d'autre.


Avant de te répondre, il faudrait que tu précises ta demande.
A partir de l'exemple que j'ai et des modifications apportées.

Tu voudrais pouvoir supprimer:

1 - tous les noms de la feuil1 et que ces noms soient aussi supprimés dans la feuille 'Joueurs & pointage'? C'est à dire réinitialiser toutes les cellules de Feuil1 et 'joueurs & pointage'?

2 - seulement ceux de la feuille 'joueurs & pointage' qui n'ont plus de correspondance dans feuil1?

Tu parles des autres feuilles, quelles autres feuilles, dans l'exemple, je n'en ai que deux?

Joindre événtuellement un autre fichier.

A bientôt
 
Dernière modification par un modérateur:
Re : Copier en feuille deux

Bonjour Hasco et merci de me répondre....

Voici où je disperse les noms des joueurs...

Private Sub CommandButton1_Click()
Dim Plage As Range
On Error GoTo FinCopie
Application.ScreenUpdating = False

'Femmes
Set Plage = Range("B2", Range("B" & Rows.Count).End(xlUp))
Plage.Cells.SpecialCells(xlCellTypeConstants).Copy
Sheets("Joueurs & pointages").Range("B3").PasteSpecial xlPasteValues

'Femmes
Set Plage = Range("B2", Range("B" & Rows.Count).End(xlUp))
Plage.Cells.SpecialCells(xlCellTypeConstants).Copy
Sheets("Joueurs & pointages").Range("B138").PasteSpecial xlPasteValues

'Hommes
Set Plage = Range("C2", Range("C" & Rows.Count).End(xlUp))
Plage.Cells.SpecialCells(xlCellTypeConstants).Copy
Sheets("Joueurs & pointages").Range("B22").PasteSpecial xlPasteValues

'Hommes
Set Plage = Range("C2", Range("C" & Rows.Count).End(xlUp))
Plage.Cells.SpecialCells(xlCellTypeConstants).Copy
Sheets("Joueurs & pointages").Range("B149").PasteSpecial xlPasteValues

'Équipes
Set Plage = Range("A2", Range("A" & Rows.Count).End(xlUp))
Plage.Cells.SpecialCells(xlCellTypeConstants).Copy
Sheets("Joueurs & pointages").Range("B119").PasteSpecial xlPasteValues

'Équipes
Set Plage = Range("A2", Range("A" & Rows.Count).End(xlUp))
Plage.Cells.SpecialCells(xlCellTypeConstants).Copy
Sheets("Joueurs & pointages").Range("B169").PasteSpecial xlPasteValues

'Équipes
Set Plage = Range("A2", Range("A" & Rows.Count).End(xlUp))
Plage.Cells.SpecialCells(xlCellTypeConstants).Copy
Sheets("Joueurs & pointages").Range("B179").PasteSpecial xlPasteValues

'Équipes
Set Plage = Range("A2", Range("A" & Rows.Count).End(xlUp))
Plage.Cells.SpecialCells(xlCellTypeConstants).Copy
Sheets("Joueurs & pointages").Range("B189").PasteSpecial xlPasteValues

'Équipes
Set Plage = Range("A2", Range("A" & Rows.Count).End(xlUp))
Plage.Cells.SpecialCells(xlCellTypeConstants).Copy
Sheets("Joueurs & pointages").Range("B196").PasteSpecial xlPasteValues

'Équipes
Set Plage = Range("A2", Range("A" & Rows.Count).End(xlUp))
Plage.Cells.SpecialCells(xlCellTypeConstants).Copy
Sheets("Points,Quilles,69").Range("C5").PasteSpecial xlPasteValues

'ÉQuipes
Set Plage = Range("A2", Range("A" & Rows.Count).End(xlUp))
Plage.Cells.SpecialCells(xlCellTypeConstants).Copy
Sheets("Rapport").Range("C3").PasteSpecial xlPasteValues

'Équipes
Set Plage = Range("A2", Range("A" & Rows.Count).End(xlUp))
Plage.Cells.SpecialCells(xlCellTypeConstants).Copy
Sheets("Points,Quilles,69").Range("C19").PasteSpecial xlPasteValues

Application.CutCopyMode = False

FinCopie:
Application.ScreenUpdating = True

End Sub
PHP:


Lorsque je veux utiliser le fichier pour une autre équipe... je dois aller effacer manuellement tous les noms dipersés partout....

J'aimerais savoir s'il est possible de les effacer d'un seul coup, partout...

Merci d'y regarder
Clochard
 
Re : Copier en feuille deux

Bonsoir Clochard,

Par très explicite sur ce que tu veux, m'enfin, d'après ce que je comprends voici un exemple pour Equipes:

Code:
with Sheets("Points,Quilles,69")
 .Range(.Range("C19"), .Range("C19").End(xlDown)).ClearContents
end with

Effacera le contenu des cellules de C19 à la dernière cellule non vide de la colonne

A bientôt
 
Re : Copier en feuille deux

Bonjour Clocahrd,

Voici une méthode différente pour ecrire ta procédure de copie (Post #11)

Code:
Private Sub CommandButton1_Click()
    Dim shFrom As Worksheet         'Feuille de copie
    Dim shTo As Worksheet           'Feuille de destination
 
    Dim plage As Range              'Plage à copier
    SousPlage As Range              'Sous-plage des plages de destination
 
 
    Set shFrom = Sheets("Joueurs")
    Set shTo = Sheets("Joueurs & pointages")
 
    On Error GoTo FinCopie
    Application.ScreenUpdating = False
 
    'Femmes
    Set plage = shFrom.Range("B2", shFrom.Range("B" & Rows.Count).End(xlUp))
    plage.Cells.SpecialCells(xlCellTypeConstants).Copy
    shTo.Range("B138").PasteSpecial xlPasteValues
    shTo.Range("B3").PasteSpecial xlPasteValues
 
    'Hommes
    Set plage = shFrom.Range("C2", shFrom.Range("C" & Rows.Count).End(xlUp))
    shTo.Range("B22").PasteSpecial xlPasteValues
    shTo.Range("B149").PasteSpecial xlPasteValues
 
    'Équipes
    Set plage = Range("A2", Range("A" & Rows.Count).End(xlUp))
    plage.Cells.SpecialCells(xlCellTypeConstants).Copy
 
    'Boucler sur les sous-plages
    For Each SousPlage In shTo.Range("B119,B169,B179,B189,B196").Areas
        SousPlage.PasteSpecial xlPasteValues
    Next
 
    'Trois dernière feuilles de destination
    Sheets("Points,Quilles,69").Range("C5").PasteSpecial xlPasteValues
    Sheets("Rapport").Range("C3").PasteSpecial xlPasteValues
    Sheets("Points,Quilles,69").Range("C19").PasteSpecial xlPasteValues
 
FinCopie:
 
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
 
End Sub

Comme tu le vois, tu n'es pas obligé de redéfinir ta plage de copie si elle reste la même pour des destinations multiples.

tu peux également faire quelque chose comme ça pour le nettoyage des plages.

A bientôt
 
Re : Copier en feuille deux

Salut Hasco,

J'suis vraiment impressionné par le temps et le travail que tu mets sur mon cas....

J'aimerais bien pouvoir te rendre la pareille un jour.....

C'est GRANDEMENT apprécié

Du fond du coeur... MERCI !

Tu m'aides énormément a faire progresser mon fichier

Clochard
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
11
Affichages
759
Retour