Iniatlisation listview

bonjour a vous tous

a l'intialisation de la listview je voudrais que dans 1 colonne elle affiche le contenu de la colonne "D"mais a partir de la ligne 19

voici le code que j'ai mis mais qui me renvoie une colonne vierge

Option Explicit
Dim i As Long

Private Sub UserForm_Initialize()
With ListView1
.View = lvwReport: .FullRowSelect = True: .Gridlines = True
With .ColumnHeaders
.Add , , "référence", 160

End With
 For i = 19 To Sheets("feuil2").Cells(Rows.Count, 19).End(xlUp).Row
 .ListItems.Add , , Sheets("feuil2").Cells(i, 19)

 Next i
 End With
End Sub

merci d'avance de vos aides

Pascal

Bonjour Grisan29

En attendant que les experts répondent

j 'ai essayé la chose suivante et cela semble passer

For i = 19 To Sheets("feuil2").Cells(Rows.Count - 19, 1).End(xlUp).Row

.ListItems.Add , , Sheets("feuil2").Cells(i, 1)

Next i

Le cas échéant je m'excuse auprès de mes maitres qui se reconnaitront

Amicalement

bonjour Back

merci de ta réponse mais ce n'est pas bon, mais j'avais commencer a modifier mon post ce matin et oublier de valider en fermant le net donc je recommancerai tout a l'heure car il y a plus d'infos a donner

Pascal

Re

Grisan29

Dommage. Mais le fichier test que je t'envoie semble confirmer

que cela marche chez moi. Je serai curieux de voir les réponses des pro

A+

46test.xlsm (17.15 Ko)

bonjour Bakh

je viens d'essayer ton classeur avec les données mises dans celui que j'essaie et c'est parfait, exactement ce que je veux, mais maintenant il faudrai que je puisse sélectionner une où plusieurs lignes afin de pouvoir les transférer sur une feuille qui se trouve sous

C:\Facturation\base\listing

en sachant que certaine dans la listview sont vide car il y a des lignes fusionnées qui commence la colonne avant

autrement il faudrai que la listview s'alimente des 2 colonnes voisines voire de la 2ème seulement car c'est d'après la colonne unité que je devrai sélectionner les lignes de la listview

peut etre qu'il y a une solution pour les lignes qui sont vides ne soit pas visibles ?

je te rejoints ton fichier que j'ai modifier tel que je le décrit

Pascal

bonjour Bakh

merci beaucoup de m'avoir ouvert la voie sur le code que je te propose et qui fonctionne sur le fichier que j'ai joint

Private Sub UserForm_Initialize()
Dim t As Byte, x As Byte, j As Byte
Dim c As Range
With ListView1
.View = lvwReport: .FullRowSelect = True: .Gridlines = True
With .ColumnHeaders
.Add , , "référence", 220
.Add , , "pu", 40
.Add , , "unité", 50
End With
End With
With Me.ListView1
.ListItems.Clear
    For Each c In Range("d19:d" & Range("d65536").End(xlUp).Row)
        x = x + 1
        .ListItems.Add , , c
        For j = 1 To 3
            .ListItems(x).ListSubItems.Add , , c.Offset(0, j)
        Next j
Next c
End With
End Sub

mais maintenant il faudrai que je puisse sélectionner une où plusieurs lignes afin de pouvoir les transférer sur une feuille qui se trouve sous

C:\Facturation\base\listing

Pascal

Bonjour Grisan29

je suis ravi que tu puisses progresser dans la résolution de ton post

A ce niveau, il vaut mieux de faire un clin d’œil aux pro du VBA.

Je continue de suivre le fil

Merci

A+

bonjour Bakh

Merci de ton implication et bon courage pour la suite

Pascal

Re Grisan

Merci

Je sais que tu es très dégourdi. je te propose le fichier suivant que j'ai copié du "Grand Cheman Excel"

C'est vrai je n'ai rien fait pour le décalage des données.

Il pourra t'inspirer, j'en suis sûr. Au besoin tu le visites si tu ne l'as déjà fait.

A+

59test.xlsm (17.75 Ko)

bonsoir Bakh

merci pour ton fichier, mais pourquoi tu n'a pas pris mon fichier pour faire ce que tu a fait car l'emplacement des données sur la feuille ne sont au bon endroit sur ton fichier "test"

Pascal

Grisan29

Je te demandais d'essayer de t'inspirer du fichier brut que j'ai chopé quelque part.

J'ai essayé de bricoler de mon côté (dans le sens de toujours apprendre).

Voici ce que j'ai pu

cordialement

14test.xlsm (21.73 Ko)

merci bakh

cette fois je ne t'embête plus entre maintenant et l'autre réponse j'ai été absent donc pas le temps ce soir de m'occuper de modifier le code et de plus pas fini mes préparatifs pour demain

Merci beaucoup de ce que tu a fait

Pascal

bonjour Bakh et le forum

voici le code qui envoie la ligne sélectionnée dans la feuille d'où elle viens, j'ai essayer de lui greffé une adaptation pour que la ligne soit envoyer sur la feuille "fournisseur" qui est sous c:\facturations\base\fournisseurs\

+des sous dossiers

truc est un classeur .xlsx

Private Sub CommandButton1_Click()
'copie les lignes selectionnées dans la colonne G
Dim i As Integer
Dim rg As Range

With UserForm1.ListView1
'on boucle sur tous les éléments du Listview
For i = 1 To .ListItems.Count
'et on copie uniquement les items sélectionnées
If .ListItems(i).Selected = True Then
Set rg = Range("A65536").End(xlUp).Offset(1, 0) 'cellule destination

'copie des champs voulus
rg = .ListItems(i)
rg.Offset(0, 1) = .ListItems(i).ListSubItems(1)
rg.Offset(0, 2) = .ListItems(i).ListSubItems(2)

End If
Next i
End With
End Sub

ligne modifiée sans succès

Set rg = ThisWorkbook.Worksheets("fournisseur").Range("M65536").End(xlUp).Offset(1, 0) 'cellule destination

donc comme j'ai plusieurs sous dossiers nommé "fournisseur1 a fournisseur 10" si je mets une combobox qui prendrais leurs noms est ce que l'envoi pourrai se faire en fonction de ce choix et dans le classeur du meme nom

peut-on m'expliquer pour le chemin d'envoi a créer

Pascal

edit:

j'ai fait cette macros avec l'enregistreur si cela peux aider en enregistrant un classeur

Sub Macro1()
'
' Macro1 Macro
'

'
    ChDir "C:\Facturations\base\fournisseurs"
    ActiveWorkbook.SaveAs Filename:= _
        "C:\Facturations\base\fournisseurs\Classeur1.xlsm", FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub

bonjour a tous

je reviens sur les posts précédentsmais je ne remets pas en cause les réponses de Bakh

dans l'application où je destine les résultats , les classeurs "fournisseurs 1 à 12" sont des sous-dossiers de fournisseurs

le chemin exact est c:\facturations\base\fournisseur puis les sous dossier

il faudrait pouvoir ouvrir le classeur correspondant au nom du fournisseurs et a partir de la inscrire les données grace au code de bakh

je rejoint le classeur car j'y ai mis une combobox qui contient le nom de mes fournisseurs dans sa liste et j'espérais pouvoir réussir grâce a la combobox ouvrir le classeur du même nom et ben c'est pas facile et je m'en remets a vous pour au moins me guider

Pascal

bonjour Bakh et le forum

si vous suivez l'évolution du post , j'apporte une amélioration du code qui me permets de créer une feuille avec le nom qui est dans la liste déroulante du combobox sur l'usf, ce n'est pas encore parfait mais je ne perd pas espoir, le forum est là pour aider et non pas créer

Pascal

Bonjour grisan29, BAKH

Si cela peut vous aider

checkboxs sur la listview

transfert dans le fichier du nom du combobox

28test.xlsm (21.78 Ko)

bonjour BOB71AU

merci de ton fichier qui me vas très bien, le problème est que si je change la destination des lignes de la listview dans le code elles sont écrite l'une en dessous de l'autre espacée de 10 lignes et pourtant je n'ai changer que "M" en "A" car l'envoi en "M" n'était que pour l'essai et je commence en en "A8" au dessus est l'entête

.Sheets(1).Range("A65536").End(xlUp).Offset(1, 0) = UserForm1.ListView1.ListItems(i)
      .Sheets(1).Range("A65536").End(xlUp).Offset(0, 1) = CDbl(UserForm1.ListView1.ListItems(i).ListSubItems(1))
      .Sheets(1).Range("A65536").End(xlUp).Offset(0, 2) = CDbl(UserForm1.ListView1.ListItems(i).ListSubItems(3))

et aussi comme tu a pu le voir j'ai plusieurs fournisseurs, comment puis je les géres tous en leur attribuant un classeur ou ils seront ranges chacun ou autre que me propose tu?

Pascal

Re

je ne vois pas pourquoi ce changement

pas chez moi en tous cas

pas de cellules fusionnées dans le fichier de destination ?

poste tes fichiers pour voir (si pas discret)

re

ce ne sont que des fichiers d'essai que je fait pour l'instant et le dernier fichier en date est celui que j'ai mis a 15h57

Merci par avance, je crois qu'il y eu croisement

Pascal

rere

en théorie,les données se rangent dans la classeur dont le nom est celui du combobox

donc les classeurs Rouenel", "Rexel", "Tanguy", "Leader Mat" etc

Rechercher des sujets similaires à "iniatlisation listview"