Selection dans un tableau

  • Initiateur de la discussion papoow
  • Date de début
P

papoow

Guest
Bonjour à tous

Désolé de faire une demande aussi simple, mais je coince, j'ai parcouru le forum sans succés...

Je voudrais copier les 20 derniéres cellules d'une colonne d'un tableau évolutif pour les coller dans un autre (simple non ?) !!!

Je sais aller jusqu'au dernier enregistrement de la colonne.
Je ne sais pas selectionner les 20 cellules qui m'intéresse à partir de la derniére cellule non vide !!!!! br

Merci pour votre aide et votre gentillesse
 
@

@Christophe@

Guest
Bonjour,

Voici comment selectionner les 20 dernière ligne de ton tableau évolutif, à toi de compléter:

Dim L As Integer

L = Range("A1").End(xlDown).Row

Range("A" & L - 20 & ":C" & L).Select

Bonne journée

@Christophe@
 
P

papoow

Guest
Christophe,

Merci pour ta réponse, je vais être désagréable en te disant que celle-ci ne me convient pas!
J'ai essayé de m'en sortir, en me disant que tu m'avais mis sur la voie, hélas je piétine un peu.
je souhaite selectionner uniquement les 20 cellules contenant des infos à partir de ma dérniére cellule non vide !
Encore merci pour ta réponse

Bonne fin de journée à toi

Papoow
 
@

@+Thierry

Guest
Bonsoir @Xtof@, Papoow, le Forum

Oui moi non plus @Xtof@, alors t'inquiéte pas !

Sinon moi je préfère ceci :

Sub XtofCorrected()
Dim L As Integer

L = Range("A65536").End(xlUp).Row

If L > 20 Then
Range("A" & L - 20 & ":C" & L).Select
End If
End Sub

Mais bon je suppose que Papoow va nous expliquer ce qu'il souhaite ?
Sinon il peut essayer ceci dans son tableau :

NB Sous entendu que l'on parle d'un tableau linéaire structuré)

Sub MesureRange()
Dim TheRange As Range
Dim Msg As String

Set TheRange = ActiveSheet.UsedRange

Msg = "La Plage fait " & TheRange.Rows.Count & " lignes" & vbCrLf
Msg = Msg & "La Plage fait " & TheRange.Columns.Count & " Colonnes" & vbCrLf
Msg = Msg & "La première ligne de la Plage est " & TheRange.Row & vbCrLf
Msg = Msg & "La première colonne de la Plage est " & TheRange.Column & vbCrLf
Msg = Msg & "La dernière ligne de la plage est " & Cells(65536, TheRange.Column).End(xlUp).Row & vbCrLf
Msg = Msg & "La dernière colonne de la plage est " & Cells(TheRange.Row, 256).End(xlToLeft).Column & vbCrLf
Msg = Msg & "L'adresse de la plage en référence absolue est " & TheRange.Address & vbCrLf
Msg = Msg & "L'adresse de la plage en référence relative est " & TheRange.Address(False, False) & vbCrLf
Msg = Msg & "La plage contient " & TheRange.Cells.Count & " Cellules" & vbCrLf
Msg = Msg & "La plage contient " & TheRange.Rows(TheRange.Row).Cells.Count & " Cellules par ligne" & vbCrLf
Msg = Msg & "La plage contient " & TheRange.Columns(TheRange.Column).Cells.Count & " Cellules par colonne" & vbCrLf
Msg = Msg & "La prochaine cellule vide vers le bas sera " & Cells(65536, TheRange.Column).End(xlUp).Offset(1, 0).Address & vbCrLf

MsgBox "Dimension de la plage sur la feuille Active :" & vbCrLf & Msg
End Sub

LOL !

Bonne Soirée
@+Thierry
 
P

papoow

Guest
Christophe,

Grâce à ta proposition, j'ai réussi à faire ce que je voulais

Dim C As Integer
Sheets("Saisie").Select
Range("F5").End(xlDown).Select
C = Range("F5").End(xlDown).Row

Range("F" & C - 19 & ":F" & C).Select

Selection.Copy
Sheets("Sheet1").Select

Encore merci pour ta réponse

Bonne fin de journée à toi

Papoow
 
@

@+Thierry

Guest
Re Bonsoir

En plus Direct et sans Select...

Sub PapoowCorrect()
Dim C As Integer

C = Sheets("Saisie").Range("F5").End(xlDown).Row
Range("F" & C - 19 & ":F" & C).Copy Sheets("Sheet1").Range("A1")

End Sub


PS : Sheets("Sheet1").Range("A1") <= si tu veux coller à partir de A1 of course....

Bonne Soirée
@+Thierry
 
P

papoow

Guest
Thierry,

Merci également pour ta contribution, mais là donnes moi un peu de temps pour valider tes propositions. Il me faut prendre du recul !


A tous les 2, Bonne soirée

Grand merci au "Forum" et Anims de tous poils !

Cordialement, Papoow
 

Discussions similaires

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 536
dernier inscrit
komivi