macro : selection fin de ligne

  • Initiateur de la discussion Amine
  • Date de début
A

Amine

Guest
bjr
j'ai une macro dans lequel je voudrais qu'il selectionne par ex la premiere colonne de 5 jusqu'a la dernier ligne
lorsque j'enregistre la macro il en registre la dernier ligne bien defini
par la suite dans mons fichier si il y a plus de ligne, il s'arrete a celle defini dans la macro
Merci de votre aide
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Amine, le Forum

C'est une action de base en VBA, savoir trouver la dernière Ligne Vide d'une colonne, ceci de manière dynamique.

Il y a différentes méthodes... Si tu cherches 'Déplacemnt Cellules' dans l'ancien Forum tu trouveras plein de trucs, mais sinon voici les bases :

Range('A1').End(xIDown).Select

Cette ligne de code sélectionnera la dernière cellule pleine en partant du haut vers le bas (le point de départ étant 'A1')
NB si tu as par exemple des données non contigues en colonne 'A', (exemple de A1 à A10, et que A11 et A12 sont vides, mais que A13 contient des données... Cette ligne de Code Pointera sur A10 ET PAS A13...

Donc il est préférable de chercher en partant du bas vers le haut pour trouver A13...

Donc voici un exemple concret :

Code:
Sub FindLastLine()
Dim LastLine As Long

LastLine = Sheets('Feuil1'Â'Â').Range('A65536'Â'Â').End(xlUp).Row

MsgBox 'La dernière ligne non vide de la colonne A est la ligne ' & LastLine
End Sub

Bien sur ce code va trouver la dernière cellule non vide de la colonne 'A'... mais comment trouver la première cellule Vide d'une colonne déterminée et écrire dedans... et bien c'est tout simple :
Code:
Sub FindLastLineAndWriteNewLMine()
Dim LastLine As Long

With Sheets('Feuil1'Â'Â')
    LastLine = .Range('A65536'Â'Â').End(xlUp).Row + 1
    .Range('A' & LastLine).Value = ''@+Thierry'
End With


End Sub


Pour faire une démonstration complète de ce principe voici un code qui trouvera la dernière colonne et la dernière ligne non vide de cette même colonne d'une feuille déterminée, pour autant qu'elle contienne des données placée sur un tableau de type linéaire...
Code:
Sub FindLastColAndLine()
Dim LastLine As Long
Dim LastColNum As Integer
Dim LastColLettre As String

With Sheets('Feuil1'Â'Â')
    LastColNum = .Range('IV1'Â'Â').End(xlToLeft).Column
    LastLine = .Cells(65536, LastColNum).End(xlUp).Row
    LastColLettre = Left(.Cells(LastLine, LastColNum).Address(0, 0), (LastColNum < 27) + 2)
End With

MsgBox 'Le numéro de la dernière colonne non vide est ' & LastColNum & vbCrLf & _
       'La numéro de la dernière ligne non vide de cette colonne est ' & LastLine & vbCrLf & _
       'Par conséquent l'adresse de la derniere cellule du tableau est ' & LastColLettre & LastLine

End Sub

Je pense que tu as de quoi faire !

Bon Week End

@+Thierry

Message édité par: _Thierry, à: 12/03/2005 13:00
 

Discussions similaires

Statistiques des forums

Discussions
312 550
Messages
2 089 522
Membres
104 202
dernier inscrit
khaledscenic