Selection plage cellules

Résolu
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Je voudrais sélectionner la plage de cellule de la feuille5 colonnes A:F avec un nombre de lignes variables comportant des cellules vides par Vba
Je ne peux malheureusement pas travailler en nommant ma plage avec DECALER

Merci pour votre aide
ps Excel 2003

10 réponses

Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Bonjour,

Essaye simplement comme cela pour sélectionner de A1 à la dernière cellule renseignée en A décalée colonne F

Sub Sélect()
Range([A1], [A65535].End(xlUp)(1, 6)).Select
End Sub

1
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, par exemple:
Option Explicit

Sub jean300()
Dim ldebut As Long, lfin As Long
Dim plage As Range
ldebut = 23
lfin = 32
Set plage = ThisWorkbook.Sheets("feuille5").Range("A" & ldebut & ":F" & lfin)
End Sub

ou bien souhaites-tu automatiquement détecter les cellules vides?
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
Bonjour yg_be
Je te remercie de me répondre, j'ai testé ton code mais il ne se passe rien
En fait je voudrais que cette formule =NON(MOD(LIGNE();2)) (en format conditionnel) se mette sur les colonnes de A à F jusqu'à la dernière ligne qui comporte toujours une écriture en colonne A
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
alors je propose ceci:
Option Explicit

Sub jean300()
'En fait je voudrais que cette formule =NON(MOD(LIGNE();2)) _
    (en format conditionnel) se mette sur les colonnes de A à F _
    jusqu'à la dernière ligne qui comporte toujours une écriture en colonne A
Dim nlig As Long
Dim sh As Worksheet

Set sh = ThisWorkbook.Sheets("feuille5")
nlig = 1
Do While sh.Cells(nlig, 1) <> ""
    sh.Range("A" & nlig & ":F" & nlig).FormulaLocal = "=NON(MOD(LIGNE();2))"
    nlig = nlig + 1
Loop
End Sub
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
Ce n'est pas bon car ça inscrit VRAI dans les cellule
Ça n'applique le format conditionnel
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
plutôt ainsi?
Sub jean300()
'En fait je voudrais que cette formule =NON(MOD(LIGNE();2)) _
    (en format conditionnel) se mette sur les colonnes de A à F _
    jusqu'à la dernière ligne qui comporte toujours une écriture en colonne A
Dim nlig As Long
Dim sh As Worksheet
Dim rg As Range

Set sh = ThisWorkbook.Sheets("feuille5")
nlig = 1
Do While sh.Cells(nlig, 1).Value <> ""
    Set rg = sh.Range("A" & nlig & ":F" & nlig)
    Call rg.FormatConditions.Add(xlExpression, , "=NON(MOD(LIGNE();2))") '"=NON(MOD(LIGNE();2))"
    rg.FormatConditions(1).Interior.PatternColorIndex = xlAutomatic
    rg.FormatConditions(1).Interior.ColorIndex = 19
    nlig = nlig + 1
Loop
End Sub

sinon, pourrais-tu partager ton fichier?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
Ça bloque ici :
Call rg.FormatConditions.Add(xlExpression, , "=NON(MOD(LIGNE();2))") '"=NON(MOD(LIGNE();2))"


le fichier :
https://www.cjoint.com/c/HEft65tJNy2
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
moi, j'ai pu utilisé ceci:
Option Explicit

Sub jean300()
'En fait je voudrais que cette formule =NON(MOD(LIGNE();2)) _
    (en format conditionnel) se mette sur les colonnes de A à F _
    jusqu'à la dernière ligne qui comporte toujours une écriture en colonne A
Dim nlig As Long
Dim sh As Worksheet
Dim rg As Range

Set sh = ThisWorkbook.Sheets("Feuil1")
nlig = 2
Do While sh.Cells(nlig, 1).Value <> ""
    Set rg = sh.Range("A" & nlig & ":F" & nlig)
    rg.FormatConditions.Delete
    Call rg.FormatConditions.Add(xlExpression, , "=NON(MOD(LIGNE();2))")  '=NON(MOD(LIGNE();2)) =NOT(MOD(ROW();2))
    rg.FormatConditions(1).Interior.PatternColorIndex = xlAutomatic
    rg.FormatConditions(1).Interior.ColorIndex = 35
    nlig = nlig + 1
Loop
End Sub

quand tu écris "Ça bloque ici", as-tu un message d'erreur?
le fichier que tu as envoyé ne contient pas le code que j'ai proposé.
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
OK, j'ai fait une boulette, merci beaucoup yg_be
Je te souhaite un bon dimanche
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
Bonjour Mikr-31
Rapide et efficace, Merci à toi
0
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Re,

Si tes attentes sont satisfaites, passe le statut de la discussion en résolu ou confirme le nous qu'on le fasse pour toi
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
re
Oui le sujet est résolu mais je ne sais pas comment le mettre
Merci d'avance
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
tu peux utiliser la roue dentée à droite du titre pour marquer le sujet comme résolu.
0
jean300 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   14
 
Merci yg_be
Dois-je ouvrir un autre sujet presque similaire mais pour copier de A2 à Z2 et de coller le format sur le reste de la feuille de la dernière ligne à la ligne jusqu'à la ligne 3
Je pense que c'est cette partie qu'il faut modifier, mais comment
    Call rg.FormatConditions.Add(xlExpression, , "=NON(MOD(LIGNE();2))")  '=NON(MOD(LIGNE();2)) =NOT(MOD(ROW();2))
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
je pense préférable d'ouvrir un autre sujet. prend le temps de bien expliquer dès le départ ce que tu attends, notamment "copier de A2 à Z2".
0