Changer de colonne sur excel

baboo50 Messages postés 18 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 23 octobre 2008 - 4 juil. 2007 à 07:26
baboo50 Messages postés 18 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 23 octobre 2008 - 6 juil. 2007 à 07:36
Bonjour,

j'ai realise un petit programme qui envoi en ce moment des donnees vers excel. Pour le moment tout les donnees de la listbox est stoquer sur une colonne dans le tableau excel, mais j'aimerai qu'il passe a la colonne suivante tout les 49 nombres. en bref je ne veux pas plus de 49 nombres par colonne.

Si vous avez une technique ou une fonction qui pourrqit me depanner ce serai sympa

Jacques

4 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
4 juil. 2007 à 07:30
Bonjour,


"Pour le moment tout les donnees de la listbox est stoquer sur une colonne dans le tableau excel"


Mets ici le code qui fait celà !
C'est ce code que l'on t'aidera à modifier.
0
baboo50 Messages postés 18 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 23 octobre 2008
4 juil. 2007 à 07:43
Voici le code qui permet d'envoier dans l'excel.
faite attention la partie rouge ne sert pqs a envoyer dans l'excel mais seulement a trier les donnees.
Private Sub cmdexcel_Click()<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>





Dim i As Integer





Dim l As Integer





Dim c As String





Dim d As String





Dim tri() As String





Dim m, n, k As Integer





Dim temp As String






 






Dim listprog As New Excel.Application






 






listprog.Visible = True





listprog.Workbooks.Add





listprog.Worksheets.Add





listprog.Sheets("feuil1").Select






   








If optprog.Value = True Then








        ReDim tri(frmgstprog.lstprog.ListCount)








        For k = 0 To frmgstprog.lstprog.ListCount - 1








            tri(k) = frmgstprog.lstprog.List(k)








        Next k








        For m = 1 To k - 1








            For n = 0 To k - 1








                If Right(tri(m), 5) < Right(tri(n), 5) Then








                    temp = tri(m)








                    tri(m) = tri(n)








                    tri(n) = temp








                End If








          
 Next n








        Next m








        For k = 0 To k - 1








            frmgstprog.lstprog.List(k) = tri(k)








        Next k








 







ElseIf optcard.Value = True Then








        ReDim tri(frmgstprog.lstprog.ListCount)








        For k = 0 To frmgstprog.lstprog.ListCount - 1








            tri(k) = frmgstprog.lstprog.List(k)








        Next k








        For m = 1 To k - 1








            For n = 0 To k - 1








                If Right(Left(tri(m), 16), 7) < Right(Left(tri(n), 16), 7) Then








                    temp = tri(m)








                    tri(m) = tri(n)








                    tri(n) = temp








                End If








            Next n








        Next m








        For k = 0 To k - 1








            frmgstprog.lstprog.List(k) = tri(k)








        Next k








 







Else








        ReDim tri(frmgstprog.lstprog.ListCount)








     
  For k = 0 To frmgstprog.lstprog.ListCount - 1








            tri(k) = frmgstprog.lstprog.List(k)








        Next k








        For m = 1 To k - 1








            For n = 0 To k - 1








                If Right(Left(tri(m), 16), 7) < Right(Left(tri(n), 16), 7) Then








                    temp = tri(m)








                    tri(m) = tri(n)








                    tri(n) = temp








                End If








            Next n








        Next m








        For k = 0 To k - 1








            frmgstprog.lstprog.List(k) = tri(k)








        Next k








 







End If








 







    listprog.Range("A1") = "n°card"






    listprog.Range("B1") = "n°prog"






    For i = 0 To frmgstprog.lstprog.ListCount - 1






        l = i + 2






        c = "A" & l






        d = "B" & l






        listprog.Range(c) = Left(frmgstprog.lstprog.List(i), 16)






      
 listprog.Range(d) = Right(frmgstprog.lstprog.List(i), 5)






    Next i





End Sub
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
4 juil. 2007 à 08:11
Hé bé !
Je t'avais demandé le seul bout de code concerné,... pas tout ce machin-là que je ne vais même pas regarder !!!!

Voilà (et fais-en ce que tu veux)

Le code qui suit contient 2 variables
L'une est numéro_colonne et elle s'incrémente de 1 unité chaque fois que l'on a traité un certain nombre d'articles d'une listbox ist1
La deuxième est saut et contient le nombre de'articles à mettre dans chaque colonne.

Dans l'exemple ci-dessous, donc, on attribue le n° 12 aux 5 1ers articles, 13 aux 5 suivants, etc...

 Private Sub Command3_Click()
   Numero_colonne = 12
   saut = 5
   For i = 0 To List1.ListCount - 1
     If i Mod (saut) = 0 And i >= saut Then
       Numero_colonne = Numero_colonne + 1
     End If
   Next
End Sub

A toi d'y mettre ton propre code VBA (que je ne connais pas) d'insertion dans tes cellules.
0
baboo50 Messages postés 18 Date d'inscription lundi 2 avril 2007 Statut Membre Dernière intervention 23 octobre 2008
6 juil. 2007 à 07:36
merci pour cette eclaircissement
mais g encore un petit probleme car je ne sais pas comment recuperer le nom de la colonne dans ton programme, pour me permettre d'ecrire dans les bonnes cellules.

je te remercirai de bien vouloir me donner cette derniere petite explication
0
Rejoignez-nous