Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Récupérer les coordonnées de la dernière cellule

  • Initiateur de la discussion Initiateur de la discussion Artizar
  • Date de début Date de début

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 !

A

Artizar

Guest
Bonjour à tous,
une nouvelle fois je me tourne vers vous pour un problème que je n'arrive à résoudre aisément !
je souhaite modifier automatiquement (en utilisant le VBA) le nom de la zone "format" lorsque l'on rajoute des données supplémentaires en fin de colonne B -> cf fichier joint

En gros : "format + nouvelles données = format"

Merci d'avance de votre aide,
 

Pièces jointes

Re : Récupérer les coordonnées de la dernière cellule

salut,
si j'ai bien compris, je t'envoie une fonction que j'avais crée pour ajouter une entree à une liste puis la renommée, j'utilisaisca pour ajouter une entree à une liste de remplissage de combobox qui était initialement nommée.
J'imagine qu'il te faudra l'adapter car j'avoue que j'ai pas zueité ton fichier

Code:
Public Sub AjoutListe(Entree As String, NomFeuille As String, Liste As Range)

' Macro enregistrée le 18/06/2007 par Chloulou et modifiée le 1/08/2007 par chloulou

'Objectif : ajouter une entree non presente dans les listes de remplissage des combobox

    Dim i As Integer
    Dim NbLigneListe As Long
    Dim ColonneListe As Long
    Dim Insertion As Boolean
    Dim MaPlage As Range
    Dim NomPlage As String
    Dim EntreeI As String
    Worksheets(NomFeuille).Activate
    
    NomPlage = Liste.Name.Name
    
    Insertion = False
    
    'récupérer le nombre de colonnes et de ligne de la liste nommée, sachant qu'elle est en colonne et commenance ligne 2
    NbLigneListe = Liste.Rows.Count
    ColonneListe = Liste.Column
    
    If Entree = "" Then
    
    Else
    
        For i = 1 To NbLigneListe
            
            EntreeI = Worksheets(NomFeuille).Cells(i, ColonneListe).Value
            
            If Entree <> EntreeI Then
                
                Insertion = True
                
            ElseIf Entree = EntreeI Then
                
                Insertion = False
                Exit For
                
            End If

         Next i

           Worksheets(NomFeuille).Activate
'
'            On Error Resume Next
'
'            Insertion = Application.WorksheetFunction.Match(Entree, Liste, 0)
'
'            On Error GoTo 0
            
            If Insertion = True Then
            
                
                Cells(NbLigneListe + 2, ColonneListe).Value = Entree
           
                Set MaPlage = Range(Cells(2, ColonneListe), Cells(NbLigneListe + 1, ColonneListe))
                MaPlage.Name = NomPlage
                MaPlage.Resize(MaPlage.Rows.Count + 1).Name = NomPlage
                
            End If
            
    End If
    
        
    End Sub

@ +

je viens de regarder le fichier, et je crois que ma fonction te conviendras : il te suffira d'appeler la fonction dans Sub Worksheet_selectionchange() je crois
 
Dernière édition:
Re : Récupérer les coordonnées de la dernière cellule

bonsoir Artizar,

un peu plus court que la réponse de Chloulou, une solution par macro évènementielle à copier dans le module vba de ta feuille.
Ca devrait faire le travail tout seul.
Attention: ça ne marche qu'avec une plage d'une seule colonne:

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim OldRange As Range, NewRange As Range, LastCel As Range
Dim Col As Integer

    On Error Resume Next
    Set OldRange = Range("Format")      'repère la plage nommée format
    If Err.Number <> 0 Then Exit Sub    ' sort de la macro si elle n'existe pas
    On Error GoTo 0                     ' réactivation de la gestion d'erreur

    Col = OldRange.Column
    
    If Target.Column = Col Then                     ' si une modification a lieu dans la même colonne que "format"
        Set LastCel = Cells(65535, Col).End(xlUp)   ' cherche la première cellule non vide à partir du bas de la colonne
        Set NewRange = Range(OldRange.Cells(1), LastCel) 'redéfinit la nouvelle plage comprise entre sa première cellule et la cell trouvée ci dessus
        NewRange.Name = "Format"                           ' renomme la plage
        NewRange.Select ' juste pour l'exemple, mais à supprimer
    End If

End Sub
A te lire

Ps: ça redimensionne aussi la plage si tu supprimes des lignes
 
Dernière édition:
Re : Récupérer les coordonnées de la dernière cellule

Bonjour, sans macro, juste en définissant dynamiquement ta zone nommée (Format).
regarde l'explication que j'ai donné il y a pas longtemps Ici, et reviens si tu as un problème.
 
Re : Récupérer les coordonnées de la dernière cellule

Salut à tous et aux autres,

"par VBA" : est-ce indispensable ?
Si non : Insertion--- Nom--- Définir--- format(pour le nom)--- =Feuil1!$B:$B (pour référencer la colonne B).
 
Re : Récupérer les coordonnées de la dernière cellule

Bonjour à tous et merci beaucoup pour vos réponses !

J'ai finalement opté pour la méthode de Excel_lent qui me satisfait pleinement.

Merci à tous !
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…