OVH Cloud OVH Cloud

rangement de données

4 réponses
Avatar
Lionel de Luca
Je n'ai pas vu mon message, c'est pouquoi je le reposte

Bonjour à tous


Voici ma macro :


Private Sub CommandButton1_Click()
Dim I As Integer, compteur2 As Integer, ref(), ind(), lib1(), lib2()
compteur2 = 0
With ListBox1
For I = 0 To .ListCount - 1
If .Selected(I) Then
compteur2 = compteur2 + 1
ReDim Preserve ref(compteur2)
ref(compteur2) = .List(I)
MsgBox (ref(compteur2))
Sheets("base").Select
Range("A1").Select
ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate
Cells.Find(What:=ref(compteur2), After:=ActiveCell,
LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns,
SearchDirection:=xlNext, _
MatchCase:=False).Activate
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
ReDim Preserve ind(compteur2)
ind(compteur2) = ActiveCell.Text
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
ReDim Preserve lib1(compteur2)
lib1(compteur2) = ActiveCell.Text
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
ReDim Preserve lib2(compteur2)
lib2(compteur2) = ActiveCell.Text
ActiveCell.Offset(rowOffset:=0, columnOffset:=-3).Activate
End If
Next
MsgBox compteur2 & " sélection (s)."
End With
'Rangement des données





'Rangement des données
ListBox1.Clear
UserForm_activate
End Sub


Cette macro me permet de récupérer mes données et des les ranger dans un
tableau

Mon problème est de les mettre en place dans une feuille en sachant que :

- dans des cellules ( ex: A1 A2 A3 ......A7)

Si mon compteur < 7 , pas de problème je sais faire
Si mon compteur >7 , je ne vois pas la solution pour réecrire
dans les même cellules que pécédement
et ainsi de Suite, jusqu'à ce que toutes mes sélections de ma
listebox soient faites.
Après chaque rangement, je les imprime.


Merci d'avance pour l'aide que vous m'apporterez

4 réponses

Avatar
Lionel de Luca
Bonsoir

Quelqu'un pourrait-il m'aider, j'ai presque fini mon projet

Merci d'avance


--
Amicalement

__________________________________________

Lionel de Luca

Avatar
FxM
Bonjour Lionel,

Ne connaissant rien aux listbox, je ne pourrais te répondre.
Ce que je dois constater, c'est qu'en parcourant la question, j'aperçois
du code mais n'ai pas compris comment sont organisées tes données, ce
que tu as, ce que tu veux et par où tu es passé jusqu'à maintenant.
J'ai peur que ce soit la même chose pour mes collègues.

Difficile de répondre à un truc que l'on a pas saisi.

@+
FxM


Lionel de Luca wrote:
Je n'ai pas vu mon message, c'est pouquoi je le reposte

Bonjour à tous


Voici ma macro :


Private Sub CommandButton1_Click()
Dim I As Integer, compteur2 As Integer, ref(), ind(), lib1(), lib2()
compteur2 = 0
With ListBox1
For I = 0 To .ListCount - 1
If .Selected(I) Then
compteur2 = compteur2 + 1
ReDim Preserve ref(compteur2)
ref(compteur2) = .List(I)
MsgBox (ref(compteur2))
Sheets("base").Select
Range("A1").Select
ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate
Cells.Find(What:=ref(compteur2), After:¬tiveCell,
LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns,
SearchDirection:=xlNext, _
MatchCase:úlse).Activate
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
ReDim Preserve ind(compteur2)
ind(compteur2) = ActiveCell.Text
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
ReDim Preserve lib1(compteur2)
lib1(compteur2) = ActiveCell.Text
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
ReDim Preserve lib2(compteur2)
lib2(compteur2) = ActiveCell.Text
ActiveCell.Offset(rowOffset:=0, columnOffset:=-3).Activate
End If
Next
MsgBox compteur2 & " sélection (s)."
End With
'Rangement des données





'Rangement des données
ListBox1.Clear
UserForm_activate
End Sub


Cette macro me permet de récupérer mes données et des les ranger dans un
tableau

Mon problème est de les mettre en place dans une feuille en sachant que :

- dans des cellules ( ex: A1 A2 A3 ......A7)

Si mon compteur < 7 , pas de problème je sais faire
Si mon compteur >7 , je ne vois pas la solution pour réecrire
dans les même cellules que pécédement
et ainsi de Suite, jusqu'à ce que toutes mes sélections de ma
listebox soient faites.
Après chaque rangement, je les imprime.


Merci d'avance pour l'aide que vous m'apporterez





Avatar
Lionel de Luca
Bonjour FxM

Je suis novice mais je me débouille

Explique moi comment organiser mes procédures pourque tout le monde les
comprenne

Merci

Pour le problème exposé j'ai trouvé la solution
Merci à tous


--
Amicalement

__________________________________________

Lionel de Luca



"FxM" a écrit dans le message de
news:
Bonjour Lionel,

Ne connaissant rien aux listbox, je ne pourrais te répondre.
Ce que je dois constater, c'est qu'en parcourant la question, j'aperçois
du code mais n'ai pas compris comment sont organisées tes données, ce
que tu as, ce que tu veux et par où tu es passé jusqu'à maintenant.
J'ai peur que ce soit la même chose pour mes collègues.

Difficile de répondre à un truc que l'on a pas saisi.

@+
FxM


Lionel de Luca wrote:
Je n'ai pas vu mon message, c'est pouquoi je le reposte

Bonjour à tous


Voici ma macro :


Private Sub CommandButton1_Click()
Dim I As Integer, compteur2 As Integer, ref(), ind(), lib1(), lib2()
compteur2 = 0
With ListBox1
For I = 0 To .ListCount - 1
If .Selected(I) Then
compteur2 = compteur2 + 1
ReDim Preserve ref(compteur2)
ref(compteur2) = .List(I)
MsgBox (ref(compteur2))
Sheets("base").Select
Range("A1").Select
ActiveCell.Offset(rowOffset:=1, columnOffset:=0).Activate
Cells.Find(What:=ref(compteur2), After:¬tiveCell,
LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByColumns,
SearchDirection:=xlNext, _
MatchCase:úlse).Activate
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
ReDim Preserve ind(compteur2)
ind(compteur2) = ActiveCell.Text
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
ReDim Preserve lib1(compteur2)
lib1(compteur2) = ActiveCell.Text
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
ReDim Preserve lib2(compteur2)
lib2(compteur2) = ActiveCell.Text
ActiveCell.Offset(rowOffset:=0, columnOffset:=-3).Activate
End If
Next
MsgBox compteur2 & " sélection (s)."
End With
'Rangement des données





'Rangement des données
ListBox1.Clear
UserForm_activate
End Sub


Cette macro me permet de récupérer mes données et des les ranger dans un
tableau

Mon problème est de les mettre en place dans une feuille en sachant que
:



- dans des cellules ( ex: A1 A2 A3 ......A7)

Si mon compteur < 7 , pas de problème je sais faire
Si mon compteur >7 , je ne vois pas la solution pour réecrire
dans les même cellules que pécédement
et ainsi de Suite, jusqu'à ce que toutes mes sélections de ma
listebox soient faites.
Après chaque rangement, je les imprime.


Merci d'avance pour l'aide que vous m'apporterez








Avatar
FxM
Bonsoir Lionel,

Ce n'est pas vraiment un problème d'organisation des procédures mais
plutôt de plongeon dans un système complètement inconnu.

En survol, ta procédure me semble correcte même s'il l'ont peut
toujours améliorer en supprimant les .activate. Par exemple :
ActiveCell.Offset(rowOffset:=0, columnOffset:=1).Activate
ReDim Preserve ind(compteur2)
ind(compteur2) = ActiveCell.Text
peut devenir :
ReDim Preserve ind(compteur2)
ind(compteur2) = ActiveCell.Offset(0,1).Text
qui est plus rapide vu qu'il n'a pas à activer une cellule.

Le problème est plutôt qu'un créateur baigne dans son projet depuis x
temps et qu'il a (à priori) toutes les infos sous les yeux. Un nouvel
arrivant ne peut connaître que ce que le créateur veut bien lui indiquer.

La partie la plus difficile est de retrouver le cheminement qui a été
utilisé. Ca peut être tortueux en fonction des connaissance de chacun
et surtout des données dans le(s) fichier(s) [position, type de
données, etc, etc.]

Pas si simple d'en dire suffisamment sans se noyer dans des détails
inutiles. Si seulement il pouvait y avoir une règle universelle ...
plus besoin de développeurs, un simple générateur de code ;o)

@+
FxM



Lionel de Luca a écrit:
Bonjour FxM

Je suis novice mais je me débouille

Explique moi comment organiser mes procédures pourque tout le monde les
comprenne

Merci

Pour le problème exposé j'ai trouvé la solution
Merci à tous