XL 2010 Copier une plage d’une feuille, coller à une autre feuille en utilisant la 1re colonne non vide

christina99

XLDnaute Nouveau
Bonjour,

Merci d’avance pour votre aide.

J’aimerais pouvoir compléter de façon automatique mon tableau synthèse (Feuil2) :

À chaque fois que j’ai remplie dans la feuil1 ; les cellules E4:G12, j’aimerais pouvoir transférer les données sans formules (si possibles en gardant la mise en forme) dans la feuille 2, mais en utilisant la 1re colonne non vide. Est-il possible ?

Merci
 

Pièces jointes

  • Paie.xlsm
    16.1 KB · Affichages: 5
Solution
Bonjour @christina99

Un seul petit problème c’est que je n’arrive pas changer le nom de feuilles. Il garde en mémoire quelle feuille avais initialement le nom Feuil2 et il va aller coller l'info sur cette feuille.

D’où l’intérêt de mettre un fichier représentatif
Un fichier représentatif de 10 à 20 lignes avec tes attendus (avant/après) ET respectant le RGPD permettrait de comprendre le problème et de t'apporter une ou des réponses.

C'est quoi représentatif ?
- représentatif, même organisation des lignes et des colonnes, mêmes libellés, mêmes noms de feuilles...
- anonymisé, pas de données personnelles réelles tels nom, n° sécu, adresse ...
- simplifié, une quinzaine...

christina99

XLDnaute Nouveau
Bonjour Phil,

Génial ! Je l’ai testé, et ce exactement ce que j’ai cherché.

Un seul petit problème c’est que je n’arrive pas changer le nom de feuilles. Il garde en mémoire quelle feuille avais initialement le nom Feuil2 et il va aller coller l'info sur cette feuille.

Merci infiniment pour votre aide !

Bonne soirée
 

Phil69970

XLDnaute Barbatruc
Bonjour @christina99

Un seul petit problème c’est que je n’arrive pas changer le nom de feuilles. Il garde en mémoire quelle feuille avais initialement le nom Feuil2 et il va aller coller l'info sur cette feuille.

D’où l’intérêt de mettre un fichier représentatif
Un fichier représentatif de 10 à 20 lignes avec tes attendus (avant/après) ET respectant le RGPD permettrait de comprendre le problème et de t'apporter une ou des réponses.

C'est quoi représentatif ?
- représentatif, même organisation des lignes et des colonnes, mêmes libellés, mêmes noms de feuilles...
- anonymisé, pas de données personnelles réelles tels nom, n° sécu, adresse ...
- simplifié, une quinzaine de lignes reproduisant l'ensemble des différents cas envisageables

*Éventuellement préciser l'ordre de grandeur des lignes à traiter, exemple mon fichier comporte 1 000 lignes ou bien 20 000 lignes ==> la méthodologie peut être différents.

Une demande claire donne très souvent une réponse rapide et qui correspond au mieux à la demande.

Et pour répondre à ta question 2 solutions :

1)Tu mets les mains dans le code pour changer le/les noms de la feuille pour que cela fonctionne

2)Tu me donnes le/les noms de ta/tes feuilles et je le fais mais tu ne serais toujours pas faire


Dans cette version il suffira de changer le/les noms 1 seul fois pour que tout fonctionne

Tu changes le Name (le nom de la feuille)

1643616828338.png


ou le CodeName

1643616982430.png


L'apostrophe au début sert à commenter et/ou désactiver la ligne donc quand excel la voit il saute la ligne de code SANS l’exécuter

Pour que tu comprennes bien

1643617512504.png


Le Name de la feuille c'est le nom que tu donnes à ta feuille ET que tu peux changer facilement dans l'exemple que j'ai fait c'est :
"Name Feuille source" et "Name feuille destination"

Le CodeName de la feuille c'est le nom interne qu'excel donne et qui n'est pas modifiable facilement sans mettre les mains "dans le cambouis" o_O dans l'exemple que j'ai fait c'est :
"CodeNameFeuil1" et "CodeNameFeuil2" (la partie en jaune)

Ne pas confondre les 2

A toi de choisir ce que tu veux faire entre les 2 solutions que je te propose ;)

*Merci de ton retour

@Phil69970
 

Pièces jointes

  • Transfert Paie V2.xlsm
    24.6 KB · Affichages: 0

patricktoulon

XLDnaute Barbatruc
bonjour
solution il y a à foison
mais avant tout !!
A
° sert toi des codenames des feuilles(c'est plus simple et plus sur)
B° utilise copy destination
C° utilise le usedrange pour chopper la première cellule ou va etre copié le tableau


Méthode1 (la moins sur ne pas l'utiliser ) : copy destination avec le start calculé par la ligne 5 qui est sensée etre toujours remplie

Méthode 2 (la plus sur !!) : copy destination avec le start déterminé par le usedrange

Méthode 3 (un peu plus compliqué) : value=value avec le start déterminé par le usedrange

VB:
'Méthode 1
Sub Invoice_C1()    'moins sur dans le sens ou on est pas sur que les cellules soit pleines
    Dim plage As Range
    Set plage = Feuil1.[E4:G12]
    plage.Copy Feuil2.Cells(5, Columns.Count).End(xlToLeft).Offset(-4, 1)
End Sub

'Méthode 2
Sub Invoice_C2()    'la plus sur 1 !!! car on utilise le userange pour dimentionner le start
    Dim plage As Range
    Set plage = Feuil1.[E4:G12]
    plage.Copy Feuil2.Cells(1).Offset(, Feuil2.UsedRange.Columns.Count)
End Sub

'solution sans copy
'Méthode 3
Sub Invoice_C3()    'la plus sur 2 !!! sans copy (value=value + format bold  des deux  first cellules)
    Dim plage As Range
    Set plage = Feuil1.[E4:G12]
    With Feuil2.Cells(1).Offset(, Feuil2.UsedRange.Columns.Count)
        With .Resize(plage.Rows.Count, plage.Columns.Count)
            .Value = plage.Value
            .BorderAround (1)
            .Borders(xlInsideVertical).LineStyle = xlContinuous
            .Borders(xlInsideHorizontal).LineStyle = xlContinuous
        End With
        .Resize(2, 1).Font.Bold = True
    End With
End Sub
 

Phil69970

XLDnaute Barbatruc
Re

Bonjour Patrick

Certes tes solutions fonctionnent mais si j'ai compris les names et codenames de sa feuille ne correspondent pas à son fichier test et donc tes solutions et ma solution ne fonctionnent pas car il faut remettre le bon nom de feuilles et c'est pour lui expliquer cela que j'ai fait le post #4 soit elle arrive à le faire ele même soit elle nous donne le bon name et/ou codename.

@Phil69970
 

Discussions similaires

Statistiques des forums

Discussions
312 185
Messages
2 086 011
Membres
103 093
dernier inscrit
Molinari