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 à 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

Retour