XL 2016 Sélection de plages de cellules multiples

Street filou

XLDnaute Nouveau
Bonsoir à tous

je cherche à corriger la syntaxe si dessous pour arriver à faire la même chose que : Range("i3:k3,M3:O3").Select (sélection de deux plages)

mais avec la variable i
sauf que le code ci dessous ne fonctionne pas !

Range("H" & i + 1 & ":Q" & i + 1, "S" & i + 1 & ":AA" & i + 1").Select

je dois surement faire une erreur toute simple d'écriture, mais impossible à trouver !

si quelqu’un voudrait bien me donner un petit coup de main svp, ça serait super sympa ... Merci par avance
Bonne soirée à tous
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil,

Une autre syntaxe possible
VB:
Sub test_2()
Dim rng As Range
i = 3
'Range("H" & i + 1 & ":Q" & i + 1 & ",S" & i + 1 & ":AA" & i + 1).Select
'MsgBox Range("H" & i + 1 & ":Q" & i + 1 & ",S" & i + 1 & ":AA" & i + 1).Address(0, 0)
Set rng = Union(Cells(i, "H").Resize(, 10), Cells(i, "S").Resize(, 9)).Offset(1)
MsgBox rng.Address(0, 0)
rng.Select
End Sub
 

Street filou

XLDnaute Nouveau
Bonsoir le fil,

Une autre syntaxe possible
VB:
Sub test_2()
Dim rng As Range
i = 3
'Range("H" & i + 1 & ":Q" & i + 1 & ",S" & i + 1 & ":AA" & i + 1).Select
'MsgBox Range("H" & i + 1 & ":Q" & i + 1 & ",S" & i + 1 & ":AA" & i + 1).Address(0, 0)
Set rng = Union(Cells(i, "H").Resize(, 10), Cells(i, "S").Resize(, 9)).Offset(1)
MsgBox rng.Address(0, 0)
rng.Select
End Sub
 

Street filou

XLDnaute Nouveau
Bonjour Staple1600

Pourriez vous m'aider à faire la même chose mais à partir d'une cellule active avec des offset pour décaler la sélection
c'est pour remplir et modifier deux tableaux en parallèle. Du genre :

sélection de la première plage : [activecell, activecell. offset(0,4)] et de la deuxième plage : (sur la même ligne) activecell.offset(0,6),activecell.offset(0,10) avec un .select à la fin.

et le tout en une seule ligne de code.

comme mercredi, je ne dois pas m'y prendre comme il le faut ... j'ai galéré toute la soirée ... :confused:

Merci par avance si vous aviez la réponse, car ça simplifierais beaucoup mon code ...
bonne journée
 

xUpsilon

XLDnaute Accro
Bonjour,

As tu changé quelque chose au code qu'il t'avait soumis ? Normalement, changer uniquement les Cells(x,x) par des ActiveCell et changer les offsets est suffisant pour faire compiler, je ne vois pas où il pourrait y avoir une erreur. A moins que tu aies changé qqchose.

Bonne continuation
 

Street filou

XLDnaute Nouveau
Bonsoir à tous
Je reviens un peu tard, ...
Déjà un grand merci, car j'ai appris beaucoup de chose avec vos exemples.
toutefois avec les "activecell" et les offsets ... à priori je ne suis pas doué ! :confused:
Globalement ce que j'ai fais ça fonctionne, mais à mon avis ça doit pouvoir beaucoup se simplifier !

(pour info : je souhaite partir de la cellule active, avec des offsets car dans mon projet c'est plus simple à traiter.
ci joint un extrait pour exemple
si vous avez une minute pour jeter un œil ... ça serait cool.
Merci par avance
bonne soirée à tous
filou
 

Pièces jointes

  • TEST TABLEAU .xlsm
    23.3 KB · Affichages: 6

Staple1600

XLDnaute Barbatruc
Bonsoir le fil

Street filou
Si j'ai bien compris le pitch de ta question ;)
Essaies ce code pour le bouton Ajouter (en lieu et place du tien)
VB:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
[G1:O1].Copy: Cells(Rows.Count, "G").End(3).PasteSpecial Paste:=xlPasteFormats
Application.CutCopyMode = False
End Sub

PS: Si tu utilisais un tableau structuré , le format se réplique automatiquement de ligne en ligne (et les formules aussi, si il y en a)
Si le coeur t'en dit, voir par exemple ce tuto
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 214
Membres
103 158
dernier inscrit
laufin