élection multiple de cellules
Résolu
Mistral_13200
Messages postés
649
Statut
Membre
-
Mistral_13200 Messages postés 649 Statut Membre -
Mistral_13200 Messages postés 649 Statut Membre -
Bonsoir à tous,
Dans une macro, réalisée grâce à l’enregistreur de macro j’ai ceci :
ça fonctionne correctement.
Je calcule également le N° de la dernière ligne de la feuille qui est stocké « Dernligne »
Je souhaiterais remplacer :
Range ("L3 :L106").select par Range ("L3 :L&Dernligne").select
Et là Excel n’est pas content …
Pouvez-vous m’aider.
D’avance merci.
Mistral
Dans une macro, réalisée grâce à l’enregistreur de macro j’ai ceci :
Range("L2").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC2,Données!R3C2:R6C5,4,FALSE)"
Selection.Copy
Range("L3:L106").Select ' voir pour mettre dernière ligne.
ActiveSheet.Paste
ça fonctionne correctement.
Je calcule également le N° de la dernière ligne de la feuille qui est stocké « Dernligne »
Je souhaiterais remplacer :
Range ("L3 :L106").select par Range ("L3 :L&Dernligne").select
Et là Excel n’est pas content …
Pouvez-vous m’aider.
D’avance merci.
Mistral
7 réponses
-
Bonjour
Par rapport à la demande initiale
Range ("L3 :L" & Dernligne") à la place deRange ("L3 :L&Dernligne")
Cdlt -
Bonjour,
Essaies :Option Explicit Sub test() Dim r As Range With ActiveSheet Set r = Intersect(.UsedRange, .Range("L2:L" & .Rows.Count)) r.FormulaR1C1 = "=VLOOKUP(RC2,Données!R3C2:R6C5,4,FALSE)" End With End Sub
-
Bonjour Patrice,
Tout d’abord merci à toi d’avoir pris le temps de te pencher sur ma question.
Je viens de faire un essai mais ça ne fonctionne pas.
J’obtiens : Erreur 91 Variable objet ou variable de bloc With non définie.
Je cherche pourquoi.
Cordialement
Mistral -
Bonjour Frenchie,
Merci à toi pour ta réponse.
Je viens d'essayer mais j'ai une erreur :
Erreur de compilation : Attendu séparateur de liste ou )
Je cherche toujours mais je n'ai pas trouvé la solution.
Cordialement
Mistral-
Re,
Comme tu est avare d'explication sur la façon de déterminer la dernière ligne, voici un code à adapter :Option Explicit Sub test() Dim r As Range With ActiveSheet Set r = .Range("A" & .Rows.Count).End(xlUp) 'Adapter la colonne If r.Row < 3 Then Set r = .Range("L2") Else Set r = .Range("L2:L" & r.Row) End If r.FormulaR1C1 = "=VLOOKUP(RC2,Données!R3C2:R6C5,4,FALSE)" End With End Sub
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour Patrice,
Désolé je n’avais pas compris ta demande d’explications supplémentaires. Je remets donc la partie du code concerné :
' Calcul derniere ligne occupée.
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
' Création formule répertoire d'arrivée.
Range("L2").Select ‘ Sélection de la cellule contenant la formule.
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC2,Données!R3C2:R6C5,4,FALSE)" ‘ Création de la formule.
Selection.Copy ‘ Copie de la formule.
Range("L3:L106").Select ' Sélection de la zone de collage.
ActiveSheet.Paste ‘ Collage de la formule.
La feuille sur laquelle s’applique ce code n’a pas toujours le même nombre de ligne. Je souhaiterais donc remplacer "Range("L3:L106").Select" par quelque chose qui tienne compte du nombre exacte de lignes dans la feuille, de manière à coller que sur le nombre de ligne nécessaire.
En espérant avoir été plus claire.
Cordialement.
Mistral -
Re,
Si tu préfères garder DernLigne et supprimer la sécurité si la feuille est vide :Option Explicit Sub test() Dim DernLigne As Long With ActiveSheet ' Calcul derniere ligne occupée. DernLigne = .Range("A" & .Rows.Count).End(xlUp).Row ' Mise en place formule .Range("L2:L" & DernLigne).FormulaR1C1 = _ "=VLOOKUP(RC2,Données!R3C2:R6C5,4,FALSE)" End With End Sub
-
C'est bon ça fonctionne.
Merci pour ton aide.
Cordialement
Mistral