XL 2010 Copier coller dernière ligne remplie d'un tableau

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 !

ascal44

XLDnaute Occasionnel
Bonjour , j'ai un tableau en B7:J54

Je souhaiterais réinscrire les valeures de la dernière ligne (non vide ) en B5. Et cela de façon immédiate sans à avoir à exécuter une macro .

Est ce possible ?

Merci par avance pouir vos idées .
 
Re,
Toujours aussi peu clair.
"210/12/2023" c'est suivant quel calendrier ? 😅
Vous voulez quoi ? La ligne dont la date en colonne E est la plus récente ?
Si oui, utilisez :
VB:
=INDEX(B$9:B$55;EQUIV(MAX($E$9:$E$55);$E$9:$E$55;0))
Sinon soyez plus explicite.
 

Pièces jointes

Encore des améliorations à apporter :
Lors de l'exécution de la macro CopierFeuilleMultiple , il faudrait accepter la version du nom " derlg" automatiquement sans avoir a valider pour chaque feuille.
Si l'on exécute une deuxième fois la macro il faudrait pouvoir reprendre l'incrémentation du nom des feuilles pour ne pas avoir 3(2) , 3 (3) , 3 (4) par exemple.

VB:
Sub CopierFeuilleMultiple()
Dim n As Integer, i As Integer
On Error Resume Next
Application.ScreenUpdating = False
    n = InputBox("Combien de copies voulez-vous créer?")
    If n > 0 Then
        For i = 1 To n
            ActiveSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count)
            ActiveSheet.Name = i
            ActiveSheet.[C5] = i
        Next
    End If
End Sub
 

Pièces jointes

Dernière édition:
Exécutez :
VB:
Sub CopierFeuilleMultiple()
Dim n As Integer, i As Integer
With [Tableau2].Parent
    .Name = 1
    .Activate
    On Error Resume Next
    n = InputBox("Combien de copies voulez-vous créer?")
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    For i = 2 To n: Sheets(CStr(i)).Delete: Next i
    For i = 2 To n
        .Copy After:=Sheets(Sheets.Count)
        ActiveSheet.Name = i
        ActiveSheet.Move After:=Sheets(CStr(i - 1)) 'tri
        ActiveSheet.Range("C5") = i
    Next i
    .Activate
End With
End Sub
A quoi sert la feuille "Bat" ?

Edit : ajouté ActiveSheet.Move After:=Sheets(CStr(i - 1)) 'tri
 

Pièces jointes

Dernière édition:
Bonjour le forum,

Une solution VBA avec cette macro dans le code de la feuille "Bat" :
VB:
Private Sub Worksheet_Activate()
Dim zonecopie$, ncol%, ligdeb&, coldeb%, lig&, w As Worksheet, i&
zonecopie = "B7:J7"
ncol = Range(zonecopie).Columns.Count
ligdeb = 8
coldeb = 2
lig = ligdeb
Application.ScreenUpdating = False
Rows(ligdeb & ":" & Rows.Count).Delete 'RAZ
For Each w In Worksheets
    i = Val(w.Name)
    If i Then
        Cells(lig, coldeb).Resize(, ncol) = w.Range(zonecopie).Value 'copie les valeurs
        lig = lig + 1
    End If
Next
If lig = ligdeb Then Exit Sub
With Cells(ligdeb, coldeb).Resize(lig - ligdeb, ncol)
    .Sort .Columns(1), xlAscending, Header:=xlNo 'tri
    .Interior.Color = RGB(164, 204, 228) 'bleu
    .Borders.Weight = xlThin 'bordures
End With
End Sub
Elle se déclenche automatiquement quand on active la feuille.

A+
 

Pièces jointes

- 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
10
Affichages
566
Réponses
20
Affichages
803
Retour