Derniere cellule non vide

bonjour

un petite question , je sais que pour trouver la dernière cellule non vide de la colonne C de ma feuille de calcul

je peux utiliser l'expression :

Dim DerniereLigne As Integer 
DerniereLigne = Range("C65536").End(xlUp).Row 

comment pourrais je adapter cette expression si ma colonne a une taille définie sur une plage donnée , par exemple allant de C17 à C50 ?

Merci pour vos réponses

Salut rocket4 et le forum

Petit rappel : on n'est ni télépathe, ni devin. Alors les chose implicites...

Dim DerniereLigne As Long
DerniereLigne = iif(Range("C50").End(xlUp).Row<17,17,Range("C50").End(xlUp).Row) 

A+

merci pour cette réponse Gorfael , j'ai voulu ensuite recuperer le contenu de cette dernière cellule en ajoutant

un message box du type : MsgBox "le contenu de la dernière cellule est :" & DerniereLigne.value & "" mais ca ne marche pas

comment pourrais je proceder ?

Merci

Bonjour,

Sub essai()
    MsgBox ("La dernière ligne de la plage C17:C50 est :" & Chr(10) & _
    Range("c" & Range("c51").End(xlUp).Row))
End Sub

Amicalement

Claude

Merci pour cette réponse dubois , mais ce n'est pas le numero de ligne , mais le contenu de la dernière cellule de la plage C17:C50

que j'aurai voulu obtenir

Re,

chez moi, j'obtiens bien le contenu de la dernière cellule,

essaye avec ".Value"

Sub essai()
    MsgBox ("La dernière ligne de la plage C17:C50 est :" & Chr(10) & _
    Range("c" & Range("c51").End(xlUp).Row).Value)
End Sub

Claude

je vous remercie tous pour vos réponses cela m'a bien aidé !

bonjour

sur vos idées j'ai essayé d'ecrire ceci mais ca ne fonctionne pas

Sub essai()

If Range("c" & Range("c51").End(xlUp).Row) < 17 Then

MsgBox "aucune valeur dans la plage C17:C50 !"

Else

MsgBox ("La dernière ligne de la plage C17:C50 est :" & Chr(10) & _

Range("c" & Range("c51").End(xlUp).Row).Value)

End If

End Sub

cela me renvoi toujours le message "aucune valeur dans la plage C17:C50 !" meme si je remplit ma plage C17:C50

et je ne trouve pas l'anomalie , la verriez vous ?

Bonjour

Fonctionne bien avec Excel 2003

Utilises les balises Code lorsque tu copies une macro (plus lisible)

Sub essai()
  If Range("c" & Range("c51").End(xlUp).Row) < 17 Then
    MsgBox "aucune valeur dans la plage C17:C50 !"
  Else
    MsgBox ("La dernière ligne de la plage C17:C50 est :" & Chr(10) & _
                Range("c" & Range("c51").End(xlUp).Row).Value)
  End If
End Sub

Avec ton fichier peut-être plus facile à trouver le pourquoi du comment

oui merci j'ai juste oublié d'utiliser les balises code , toutefois mon code me renvois systematiquement " aucune valeur dans la plage C17:C50 ! meme en remplissant la plage C17:C50 et j'utilise excel 2003

Bonjour

Une solution peut-être

Banzai64 a écrit :

Avec ton fichier peut-être plus facile à trouver le pourquoi du comment

oui c'est mieux en effet , j'aurais du y penser , le voici :

Bonjour

macro à mettre en place

Sub essai()
  If Range("c51").End(xlUp).Row < 17 Then
    MsgBox "aucune valeur dans la plage C17:C50 !"
  Else
    MsgBox ("La dernière ligne de la plage C17:C50 est :" & Chr(10) & _
                Range("c" & Range("c51").End(xlUp).Row).Value)
  End If
End Sub

Je ne m'explique pas pourquoi cela fonctionnait avec la 1ère macro (j'ai du zapper quelque chose)

Merci Banzai ! ta solution est au top !

Bonjour,

Je suis complètement débutant en VBA et je crée actuellement des "outils" pratique pour mon mémoire.

Je sais juste enregistrer des macros et je "bidouille" avec ça.

Je voudrais sélectionner une plage de cellules où le nombre de colonne est fixe (de la colonne A à la colonne S, MAIS où le nombre de ligne peut varier. Aussi j'aimerais que la macros s'arrête à la dernière cellule non vide de la colonne B par exemple.

Je souhaite ensuite que cette plage de donnée sélectionnée soit recopiée EN VALEUR dans une autre feuille par exemple dans la cellule B5 de la feuille nommée "A COLLER".

Ci-dessous le code de ma macro enregistrée mais qui ne convient pas si j'ai plus de lignes dans ma base que lors de mon enregistrement de macro :

Sub testcopiecolle()

'

' testcopiecolle Macro

'

'

Range("A1").Select

Range(Selection, Selection.End(xlToRight)).Select

Range(Selection, Selection.End(xlDown)).Select

Selection.Copy

Sheets("A COLLER").Select

Range("B5").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

End Sub

J'espère avoir été la plus claire possible ne connaissant pas le jargon informatique!!

Je vous remercie grandement si vous me trouvez une petite solution!!!

Merci d'avance

Bonjour et bienvenue

Pas "bô" de squatter un post d'un autre

Sinon à tester

Sub testcopiecolle()
' testcopiecolle Macro
Dim Nblg As Long

  Application.ScreenUpdating = False                ' Evite le scintillement de l'écran
  Nblg = Range("B" & Rows.Count).End(xlUp).Row    ' Dernière cellule de la colonne B non vide
  Range("A1:S" & Nblg).Copy                       ' Copie de la zone
  ' colle les valeurs
  Sheets("A COLLER").Range("B5").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
  Application.CutCopyMode = False                 ' Déselectionne la zone à copier
End Sub

C'est parfait! tu es un magicien!!

Désolée s'il ne fallait pas écrire sur le post d'un autre je ne connais pas bien le fonctionnement de ces forums!

Merci bcp bcp bcp!

PS : je pense que je v rencontrer d'autres bug... peut être je te solliciterais à nouveau! Excellent dimanche.

Rechercher des sujets similaires à "derniere vide"