CurrentRegion ou CurrentArray?

smotty

XLDnaute Occasionnel
Bonjour à tous,

J'ai besoin d'aide pour améliorer ma culture d'Excel.

J'ai l'abitude d'utiliser currentRegion et je viens de voir dans l'aide d'Excel qu'il y avait également un CurrentArray.

Les 2 retournant un objet Range, quelqu'un peut-il m'expliquer la différence entre les 2?

Merci d'avance

smotty
 

JNP

XLDnaute Barbatruc
Re : CurrentRegion ou CurrentArray?

Salut Smotty :),
D'après l'aide, CurrentRegion renvoie la zone autour de la cellule en s'arrêtant aux délimitations par ligne vierge et colonne vierge.
CurrentArray, lui, renvoie la zone du tableau (il faut un tableau défini) dont la cellule fait partie.
J'ai fait des test mais CurrentArray génère une erreur chez moi, même avec un tableau défini :eek:...
Bonne journée :cool:
 

ROGER2327

XLDnaute Barbatruc
Re : CurrentRegion ou CurrentArray?

Bonjour à tous
Un petit tour dans l'aide de VisualBasic, et hop ! un petit classeur de test.​
ROGER2327
#3937


Samedi 7 Tatane 137 (Saint Biribi, taulier, SQ)
2 Thermidor An CCXVIII
2010-W29-2T17:34:46Z
 

Pièces jointes

  • CurrentRegion_CurrentArray_3937.xls
    19.5 KB · Affichages: 224

JNP

XLDnaute Barbatruc
Re : CurrentRegion ou CurrentArray?

Re :),
Un petit tour dans l'aide de VisualBasic, et hop ! un petit classeur de test.
Belle réponse en forme d'enigme ;).
Mauvaise traduction ou mauvaise compréhension, l'aide 2007 et 2010 ne fournissent que le nom de tableau (zone nommée, entre autre) et non le terme de matricielle :eek:... L'aide de 2003 est peut-être plus claire à ce sujet, c'est bizarre, ça me rappelle des posts pas très lointains :rolleyes:...
Donc effectivement, après une légère adaptation du code (je suis un visuel, désolé :eek:), effectivement, CurrentArray représente les matrices de la feuille :eek:.
Pour ceux qui sont visuels :
le code légèrement modifié
Code:
Private Sub toto(Optional titre$ = "")
Dim tmp$
m = PasContour(Range("A1:M20"))
   tmp = "--:--"
   On Error Resume Next
   tmp = ActiveCell.CurrentArray.Address
   ActiveCell.CurrentArray.Interior.ColorIndex = 7
   On Error GoTo 0
   ActiveCell.Interior.ColorIndex = 6
   n = Contour(ActiveCell.CurrentRegion)
   MsgBox "Selection : " & Selection.Address & vbLf & String(54, "_") & vbLf & vbLf & _
      "ActiveCell : " & ActiveCell.Address & vbLf & _
      "   CurrentArray : " & tmp & vbLf & _
      "   CurrentRegion : " & ActiveCell.CurrentRegion.Address, , titre
   Feuil1.Cells.Interior.ColorIndex = xlNone
End Sub
ainsi que les 2 fonctions qui vont avec
Code:
Function Contour(Plage As Range)
With Plage
    With .Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .Weight = xlMedium
    End With
    With .Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .Weight = xlMedium
    End With
    With .Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .Weight = xlMedium
    End With
    With .Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .Weight = xlMedium
    End With
End With
End Function
Function PasContour(Plage As Range)
With Plage
    .Borders(xlEdgeLeft).LineStyle = xlNone
    .Borders(xlEdgeTop).LineStyle = xlNone
    .Borders(xlEdgeBottom).LineStyle = xlNone
    .Borders(xlEdgeRight).LineStyle = xlNone
    .Borders(xlInsideVertical).LineStyle = xlNone
    .Borders(xlInsideHorizontal).LineStyle = xlNone
End With
End Function
Merci Roger de cet éclaircissement ;).
Bonne soirée :cool:
 
Dernière édition:

smotty

XLDnaute Occasionnel
Re : CurrentRegion ou CurrentArray?

Bonjour JNP, ROGER2327,

Merci de vous être investis autant dans cette explication. C'est beaucoup plus clair.

Effectivement l'aide VBA n'est pas claire du tout à ce sujet (du moins sur 2007 quasiment identique pour CurrentArray que CurrentRegion).

J'étais à mille lieu d'imaginer ces explications.

Merci beaucoup

smotty
 

ROGER2327

XLDnaute Barbatruc
Re : CurrentRegion ou CurrentArray?

Suite...
Allons-y de notre version "visuelle"...​
ROGER2327
#3941


Dimanche 8 Tatane 137 (Susception du Croc à Merdre, SS)
3 Thermidor An CCXVIII
2010-W29-3T08:58:11Z
 

Pièces jointes

  • CurrentRegion_CurrentArray_3941.xls
    25 KB · Affichages: 138
Dernière édition:

ROGER2327

XLDnaute Barbatruc
Re : CurrentRegion ou CurrentArray?

Re...
(...)
Peut-on en conclure que les 2 ne s'intéressent qu'à la cellule active, et non à l'ensemble de la sélection ?
(...)
Exactement.
Une expérience éclairante est d'exécuter cette procédure pas à pas dans le classeur précédent :
Code:
[COLOR="DarkSlateGray"][B]Sub tata()
Dim r
   Set r = Range("A4:C3")
   r.Select
   r.CurrentRegion.Select
   r.CurrentArray.Select
   Set r = Range("C3,A4:C3")
   r.Select
   r.CurrentRegion.Select
   r.CurrentArray.Select
End Sub[/B][/COLOR]
ROGER2327
#3946


Lundi 9 Tatane 137 (Saints Ecrase-Merdre, sectateurs, SQ)
4 Thermidor An CCXVIII
2010-W29-4T00:00:46Z
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 107
Messages
2 085 354
Membres
102 872
dernier inscrit
YvanCB