Accéder à une plage définie depuis un formulaire

Accéder à une plage définie depuis un formulaire - VB/VBA/VBS - Programmation

Marsh Posté le 19-10-2008 à 10:07:41    

Bonjour à tous,
 
J'ai une petite question concernant les plages définies dans Excel et comment y accéder dans VBA.
 
Je m'explique : j'ai un formulaire "add_department" (ouvert à partir d'un autre formulaire), dans lequel je veux dynamiquement ajouter autant de textbox que d'éléments d'une plage de cellules nommée "department".  
 
Voila donc le code que j'ai écrit pour l'instant
 

Code :
  1. n = Range("department" ).Rows.Count
  2. For i = 1 To n
  3.     Set txt = Controls.Add("VB.Textbox", "txt" & i, True)
  4.     txt.Move 500, 1400 + i * 200, 1200, 350
  5.     txt.Text = Range("department" ).Offset(i)
  6. Next


 
Je ne sais pas encore si l'intérieur de la boucle fonctionne (le code est-il correct ?), mais la première ligne pose problème.
L'erreur est "La méthode 'Range' de l'objet '_Global' a échoué.
 
Par contre, si à la place je mets n=Range("A1:A2" ).rows.count, aucune erreur ne sort.
 
Pouvez-vous résoudre ce problème ?
 
Merci

Reply

Marsh Posté le 19-10-2008 à 10:07:41   

Reply

Marsh Posté le 19-10-2008 à 10:44:03    

bonjour,
    Application.Goto Reference:="department"
 n = Selection.Rows.Count
 
 
Dans l'aide tu trouves ceci:
Boucle sur des cellules d'une plage nommée
L'exemple suivant exécute une boucle sur chacune des cellules d'une plage nommée à l'aide de la boucle For Each...Next. Si la valeur d'une de ces cellules dépasse la valeur de la variable limit, la couleur de la cellule devient jaune.
 
Sub ApplyColor()
    Const Limit As Integer = 25
    For Each c In Range("MyRange" )
        If c.Value > Limit Then
            c.Interior.ColorIndex = 27
        End If
    Next c
End Sub


Message édité par seniorpapou le 19-10-2008 à 10:46:19
Reply

Marsh Posté le 19-10-2008 à 12:14:13    

merci !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed