XL 2010 Utiliser les Constantes

Nicodemius

XLDnaute Nouveau
Bonsoir à Tous

Au risque d'en faire sourire certain, j'ai découvert il y a peu un nouveau "Truc" dans VBA ; Les Constantes.

Je les utilises en début de mes procédures pour référencer une seule fois les divers éléments que j'utilise dans mes Sub.

Par exemple ;
VB:
Const NomFeuille As String = "Feuil1"

Que j'utilise avec ;
Code:
Set Ws = ThisWorkbook.Sheets(NomFeuille)

ou encore ;
Code:
Const Moncontrole As String = "Toto"

Que j'utilise avec ;
Code:
With Me.Controls(Moncontrole)


Ceci étant, j'utilise aussi beaucoup de variables Tableau ainsi que des variables compteur associées à ces variables Tableau.
Mais là, je suis un peu perdu !!

Je voudrais modifier mes déclaration de variables
Code:
Dim MonTableau()
Dim IntCount as string

utilisé avec ;
Code:
For i = 1 To int_Count
MonCritere = MonTableau(i, 1)

et utiliser des constantes mais je ne sais pas comment faire.

Si quelqu'un avait une idée ...
 

jmfmarques

XLDnaute Accro
Mais je ne sais pas trop quoi comprendre.
J'ai l'impression que je viens de me faire insulter.
CQFD
Voilà une étonnante "conclusion" qui met peut-être en exergue ce que j'exprimais en mon message #10 : beaucoup d'énergie dépensée à des "interprétations" personnelles au lieu de s'en tenir rigoureusement à ce que signifie simplement chaque mot, chaque expression, ....

le trilingue (et habitué à côtoyer d'autres nationalités) que je suis a assez souvent l'occasion de constater que ces "interprétations" personnelles de ce qui est dit en français sont très rares chez les non-francophones. Curieux, n'est-ce-pas ? :cool:
 
Dernière édition:

Patrice33740

XLDnaute Impliqué
@Patrice33740
Alors là, tu m'interresse au plus haut point. Si tu pouvais me donner un exemple de fonction
Voilà un exemple :
VB:
Option Explicit
Sub Test()
Dim tbl As Variant
Dim cel As Range

  ' Définir la première cellule de la plage de données à lire
  Set cel = ThisWorkbook.Worksheets(1).Range("A1")
  'ou bien n'importe quelle première cellule d'un autre classeur par exemple :
'  Set cel = Workbooks("MonClasseur.xlsx").Worksheets("MaFeuille").Range("B3")

  ' Lire le tableau VBA
  tbl = LireTableauVBA(cel, , 7)

  ' Et ensuite on fait ce qu'on veut de ce tableau VBA, par exemple :
  Dim wbk As Workbook
  Set wbk = Workbooks.Add(xlWBATWorksheet)
  Set cel = wbk.Worksheets(1).Range("B12")
  cel.Resize(UBound(tbl), UBound(tbl, 2)).Value = tbl

End Sub
Public Function LireTableauVBA(celDebut As Range, Optional nbLignes, Optional nbColonnes) As Variant
Dim rng As Range, tbl(1 To 1, 1 To 1) As Variant, drL As Long, drC As Long
  With celDebut.Parent
    ' dernière ligne
    If IsMissing(nbLignes) Then
      Set rng = .Cells.Find("*", , , , xlByRows, xlPrevious)
      If rng Is Nothing Then
        drL = celDebut.Row
      Else
        drL = IIf(rng.Row < celDebut.Row, celDebut.Row, rng.Row)
      End If
    Else
      If Val(nbLignes) = 0 Then Err.Raise 380
      drL = celDebut.Row + Val(nbLignes) - 1
    End If
    ' dernière colonne
    If IsMissing(nbColonnes) Then
      Set rng = .Cells.Find("*", , , , xlByColumns, xlPrevious)
      If rng Is Nothing Then
        drC = celDebut.Column
      Else
        drC = IIf(rng.Column < celDebut.Column, celDebut.Column, rng.Column)
      End If
    Else
      If Val(nbColonnes) = 0 Then Err.Raise 380
      drC = celDebut.Column + Val(nbColonnes) - 1
    End If
    Set rng = .Range(celDebut, .Cells(drL, drC))
    If rng.Count = 1 Then
      tbl(1, 1) = celDebut.Value
      LireTableauVBA = tbl
    Else
      LireTableauVBA = rng.Value
    End If
  End With
End Function
[/QUOTE]
 

Nicodemius

XLDnaute Nouveau
@jmfmarques

Pertinent. Pertinent.
Mais tout n'est il pas qu'interprétation Personnelle ?
Un professeur de linguistique m'a dit un jour ;
"Si tu cherche un dictionnaire de langue, commence par chercher un nom, un verbe, un adjectif, et compare les dans chacun des dictionnaires. Tu t’apercevras rapidement qu'un "dico" te parlera plus que les autres. C'est celui là qu'il te faut."

Chacun de nous perçoit différemment le monde qui l'entoure.
Il en va de même pour tout écrit.

Un peu de philosophie dans ce monde de code. :p

Merci beaucoup pour cette séance de méditation. ;)
 

Discussions similaires

Réponses
2
Affichages
240
Réponses
23
Affichages
1 K

Statistiques des forums

Discussions
312 229
Messages
2 086 423
Membres
103 206
dernier inscrit
diambote