OVH Cloud OVH Cloud

[Debutant] 2 questions

3 réponses
Avatar
youpi!
Bonjour a toutes et tous,

1) Je récupère une plage de cellules via une inputbox (exemple pris sur
excelabo). J'ai plusieurs lignes (nombre variable) et colonnes. J'ai besoin
de deux choses :

- Savoir combien de lignes il y a dans la selection (selection.row.count ?)
- Me caler automatiquement en haut à gauche de la plage déterminée.

Le but du jeu étant de concaténer le contenu des cellules en décalant la
cellule active d'une ligne à chaque fois (j'ai un très lointain souvenir
d'un selectionner(decaler(sélection(x,y)) qui date d'Excel 4 et qui semble
ne plus exister.

2) Je stocke des valeurs Integer dans des variables var1, var2, ... et je
veux ensuite les afficher dans une MsgBox (var1 = x, ...) après avoir
concaténé les valeurs. J'ai essayé :

For i = 1 To 6
Chaine = Chaine & "LenCol_" & CStr(i) & " : " & Val(Str(i)) & vbCrLf
Next
MsgBox "Valeurs trouvées : " & vbCrLf & Chain

Et ça ne marche pas !? Quelle erreur fais-je ?

Merci pour vos avis avisés
Alain

PS : y'a pas kkun qu'aurait une liste d'équivalence entre le nom des
fonctions dans leur format classique et leur équivalent VBA ?

3 réponses

Avatar
isabelle
bonjour Alain,

voici une piste,

Set plage = Application.InputBox(prompt:="Faite votre sélection",
Type:=8)
Range(plage.Item(1).Address).Offset(0, -1).Select
For i = 1 To plage.Rows.Count
valeur = valeur & " " & ActiveCell.Offset(i, 0)
Next

isabelle


Bonjour a toutes et tous,

1) Je récupère une plage de cellules via une inputbox (exemple pris sur
excelabo). J'ai plusieurs lignes (nombre variable) et colonnes. J'ai besoin
de deux choses :

- Savoir combien de lignes il y a dans la selection (selection.row.count ?)
- Me caler automatiquement en haut à gauche de la plage déterminée.

Le but du jeu étant de concaténer le contenu des cellules en décalant la
cellule active d'une ligne à chaque fois (j'ai un très lointain souvenir
d'un selectionner(decaler(sélection(x,y)) qui date d'Excel 4 et qui semble
ne plus exister.

2) Je stocke des valeurs Integer dans des variables var1, var2, ... et je
veux ensuite les afficher dans une MsgBox (var1 = x, ...) après avoir
concaténé les valeurs. J'ai essayé :

For i = 1 To 6
Chaine = Chaine & "LenCol_" & CStr(i) & " : " & Val(Str(i)) & vbCrLf
Next
MsgBox "Valeurs trouvées : " & vbCrLf & Chain

Et ça ne marche pas !? Quelle erreur fais-je ?

Merci pour vos avis avisés
Alain

PS : y'a pas kkun qu'aurait une liste d'équivalence entre le nom des
fonctions dans leur format classique et leur équivalent VBA ?


Avatar
youpi!
Bonjour Isabelle,

Merci pour ton aide. Je comprends pas tout mais ça fonctionne impeccablement
après une petite rectif pour l'offset.
Me reste plus qu'à fouiner dans la doc pour voir à quoi sert le item(1)

Alain

"isabelle" a écrit

voici une piste,

Set plage = Application.InputBox(prompt:="Faite votre sélection",
Type:=8)
Range(plage.Item(1).Address).Offset(0, -1).Select
For i = 1 To plage.Rows.Count
valeur = valeur & " " & ActiveCell.Offset(i, 0)
Next


Avatar
isabelle
bonjour Alain,

si la plage sélectionnée est A1:A5, que l'on nomme plage
il y a 5 items (cellule) dans la collection (plage)
pour cette exemple
plage.Item(1).Address = A1
dans ce cas
on peux aussi utilisé
valeur = plage.Item(1)
au lieu de
valeur = range("a1").value

isabelle


Bonjour Isabelle,

Merci pour ton aide. Je comprends pas tout mais ça fonctionne impeccablement
après une petite rectif pour l'offset.
Me reste plus qu'à fouiner dans la doc pour voir à quoi sert le item(1)

Alain

"isabelle" a écrit

voici une piste,

Set plage = Application.InputBox(prompt:="Faite votre sélection",
Type:=8)
Range(plage.Item(1).Address).Offset(0, -1).Select
For i = 1 To plage.Rows.Count
valeur = valeur & " " & ActiveCell.Offset(i, 0)
Next