Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Incrémanetation ou evaluation?

  • Initiateur de la discussion Initiateur de la discussion nanz
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

nanz

Guest
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 😛
 
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.
 
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
 
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:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
883
Réponses
2
Affichages
589
Réponses
6
Affichages
738
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…