Incrémanetation ou evaluation?

nanz

XLDnaute Nouveau
Bonjour,

J'ai une petite question:
J'ai sur une feuille différentes données dans une même colonne, et je souhaiterais créer une variable qui a attribuerait un nom à chaque ligne non vide. Du genre toto(1)=ligne 1 ...

Sub toto_test()

Dim toto As String
Windows("Comparaison week.xls").Activate
Sheets("Sheet6").Select
Range("A2").Select
n = 0
Do While ActiveCell.Value <> ""
ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate
n = n + 1
Loop
''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''resoudre le toto(i)''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''
For i = 2 To 2 + n - 1
toto = Cells(A, "i")
Next i

Sheets("Sheet1").Select
Range("B10") = toto(2).Value

End SUB


En rouge les parties qui coincent.:(

Merci!!

NanZ :p
 

tototiti2008

XLDnaute Barbatruc
Re : Incrémanetation ou evaluation?

Bonjour nanz,

je n'ai pas tout compris mais je pense que certainement tu aurais besoin d'utiliser un tableau. Consulte l'aide VBA avec les mots Tableau, Redim, UBound, LBound... ça devrait te donner des pistes, éventuellement également Tableau dynamique et Redim Preserve.
 

Gael

XLDnaute Barbatruc
Re : Incrémanetation ou evaluation?

Bonjour nanz, tototiti,

Essaie avec le code suivant:

Code:
Sub toto_test()
Dim toto() As String, n As Integer, i As Integer
'Windows("Comparaison week.xls").Activate
Sheets("Feuil1").Select
Range("A2").Select
n = Sheets(1).Range("A65536").End(xlUp).Row
''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''resoudre le toto(i)''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''' '
ReDim toto(2 To n)
For i = 2 To n
toto(i) = "Lig" & Cells(i, 1)
Next i
Sheets("Feuil1").Select
Range("B10") = toto(2)
End Sub

Dim toto() As String indique qu'il s'agit d'un tableau de texte dont la taille n'est pas précisée.

n = Sheets(1).Range("A65536").End(xlUp).Row donne à "n" le n° de la dernière ligne utilisée

ReDim toto(2 To n) dimensionne le tableau "toto" de 2 à n

Chaque item de toto prendra la valeur "Lig" et le n° de ligne.

@+

Gael
 

pedrag31

XLDnaute Occasionnel
Re : Incrémanetation ou evaluation?

Bonjour Nanz, Bonjour Tototiti,

Un Tableau est une bonne piste comme le propose Tototiti.

Je propose l'utilisation d'une collection comme alternative avec un indexage des articles sur le numero i:

Code:
Sub toto_test()

Dim toto As String
[COLOR="DarkGreen"]Dim Collec As New Collection[/COLOR]
Windows("Comparaison week.xls").Activate
Sheets("Sheet6").Select
Range("A2").Select
n = 0
Do While ActiveCell.Value <> ""
ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate
n = n + 1
Loop
''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''resoudre le toto(i)''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''' '
For i = 2 To 2 + n - 1
[COLOR="darkgreen"]    Collec.Add Cells(A, "i").Value, i[/COLOR]
Next i

Sheets("Sheet1").Select
[COLOR="DarkGreen"]Range("B10") = Collec(i).Value[/COLOR]

End SUB

Edit : Bonjour Gael, on s'est croise, ;)

Bonne journee,:)
 
Dernière édition:

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
2
Affichages
358

Statistiques des forums

Discussions
312 779
Messages
2 092 044
Membres
105 162
dernier inscrit
djikon