é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
A voir également:
- élection multiple de cellules
- Excel cellule choix multiple - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Ecran multiple pc - Guide
- Verrouiller cellules excel - Guide
- Copier coller multiple - Guide
7 réponses
Bonjour
Par rapport à la demande initiale
Range ("L3 :L" & Dernligne") à la place deRange ("L3 :L&Dernligne")
Cdlt
Par rapport à la demande initiale
Range ("L3 :L" & Dernligne") à la place deRange ("L3 :L&Dernligne")
Cdlt
Bonjour,
Essaies :
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
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
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 :
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é :
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
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 :
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