problème d'adaptation d'un fichier trouvé sur le forum

jecirbe

XLDnaute Junior
bonjour,
je sollicite l'aide du forum pour m'aider. J'ai trouver un fichier sur le forum qui me convient pour ses fonctions de listview recherche, modification.
J'ai réussi à faire que le nombre d'entêtes de la listview se fasse de façon automatique pour que si j'ajoute une ou plusieurs colonnes dans ma base de données, je n'ai pas besoin d'aller systématiquement dans le code.

J'arrive ou j'arrivais (je ne sais plus avec toutes les tentatives que j'ai faites) à obtenir les résultats dans la listview. c'est quand je clique sur 1 items de la listview qu'un pb réside dans les textbox de modifications et que la tentative de modifications entraine une erreur
Je vous mets ci joints le fichier de référence et mon fichier de travail.( p.s je ne me suis pas occupé de changer les labels des textbox, je le ferai quand le code fonctionnera)
Merci d'avance pour vos réponses et le temps pris pour étudier mon problème
 

Pièces jointes

  • Listview-1.xlsm
    185.6 KB · Affichages: 51
  • Listview travail sur headers auto a voir.xlsm
    33.2 KB · Affichages: 43
  • Listview-1.xlsm
    185.6 KB · Affichages: 54
  • Listview travail sur headers auto a voir.xlsm
    33.2 KB · Affichages: 39
  • Listview-1.xlsm
    185.6 KB · Affichages: 52
  • Listview travail sur headers auto a voir.xlsm
    33.2 KB · Affichages: 40

fhoest

XLDnaute Accro
Re : problème d'adaptation d'un fichier trouvé sur le forum

Bonjour,
remplace le code du commandbutton3_click() par
Code:
Private Sub CommandButton3_Click() 'accepter modification
Dim k As Integer
With Sheets("Base")
k = Range("IV2").End(xlToLeft).Columns.Count
    For i = 1 To k
        .Cells(Ligne, i) = Controls("TextBox" & i + 1)
    Next
End With
With ListView1
    .ListItems.Item(Idx) = TextBox2
    For i = 1 To k - 1
        .ListItems(Idx).SubItems(i) = Controls("TextBox" & i + 2)
    Next
End With
For j = 2 To k + 1
    Controls("TextBox" & j) = ""
Next

End Sub
A+ (il manque un "s" a column)
 

jecirbe

XLDnaute Junior
Re : problème d'adaptation d'un fichier trouvé sur le forum

Merci Fhoest pour ta contribution.
Mais j'ai encore besoin d'aide
j'ai corrigé la faute que tu m'as signalé et j'ai même modifier la variable k.
Code:
k=Range("A2", Range("A2").End(xlToLeft)).columns.count
Je trouve ça plus clair (pour mon niveau).
A présent je n'ai plus de message d'erreur mais il ne se passe rien lorsque je clique sur accepter la modification, mis à part que je perds le numéro de référence et donc si je relance une recherche il ne trouve plus la bonne réponse.
Ci joint le fichier avec mes dernières avancées.

Merci d'avance pour vos idées, suggestions, corrections
 

Pièces jointes

  • Listview travail sur headers auto a voir.xlsm
    28.4 KB · Affichages: 41
  • Listview travail sur headers auto a voir.xlsm
    28.4 KB · Affichages: 44
  • Listview travail sur headers auto a voir.xlsm
    28.4 KB · Affichages: 44

fhoest

XLDnaute Accro
Re : problème d'adaptation d'un fichier trouvé sur le forum

Bonjour,
voilà le code:
Code:
Private Sub CommandButton3_Click() 'accepter modification
With Sheets("Base")
Dim k As Integer
'ici end(xlToright)
k = Range("A2", Range("A2").End(xlToRight)).Columns.Count
    For i = 1 To k
        .Cells(Ligne, i).Value = Controls("TextBox" & i + 1).Value 'ici ajout de .value sur cell et textbox
    Next
End With
With ListView1
    .ListItems.Item(Idx) = TextBox2
    For i = 1 To k - 1
        .ListItems(Idx).SubItems(i) = Controls("TextBox" & i + 2)
    Next
End With
For j = 2 To k + 1
    Controls("TextBox" & j) = ""
Next

End Sub
pour info dans ton code tu peux placer des points d'arrêt et tu as la possibilité d'analyser le code avec la touche F8 pas a pas ou F5 jusque prochain point d'arrêt ensuite tu peux travailler avec des espions CAD tu selectionne la variable dans ton code tu fais un click droit puis ajouté un espion ceci te permettras de lire la valeur de ta variable au moment ou la ligne sera lu.

A bientôt et bonne continuation.
 

jecirbe

XLDnaute Junior
Re : problème d'adaptation d'un fichier trouvé sur le forum

Merci de te remercie de ta réponse Froeh. J'ai fait un déboguage à ma façon car les points d'arrêt j'ai compris mais pas la fonction espion. alors j'ai fait avec des msgbox.
Pour certaines variables j'ai fait afficher des msgbox pour connaitre leur valeur dans le script qui fonctionne. En fait sur le script initial le code
Code:
  '.Add , , "É-Mail", 70
crée un décalage dans les textbox et
Code:
.Add , , , 0
compte pour une colonne "vide" ou de largeur 0
Donc pour mon adaptation du code il fallait que je me base sur le nb de colonnes de la base + 1.

voilà pour ce point

Petite question supplémentaire ( j'ai lu sur d'autres fils de discussion qu'il fallait avancer point par point) comment faut-il modifier le code pour avoir la possibilité soit de faire une modification soit de copier l'item sélectionné vers une autre feuille

Merci d'avance
 

Pièces jointes

  • Listview travail sur headers auto.xlsm
    41.7 KB · Affichages: 54

fhoest

XLDnaute Accro
Re : problème d'adaptation d'un fichier trouvé sur le forum

Merci de te remercie de ta réponse Froeh.


Petite question supplémentaire ( j'ai lu sur d'autres fils de discussion qu'il fallait avancer point par point) comment faut-il modifier le code pour avoir la possibilité soit de faire une modification soit de copier l'item sélectionné vers une autre feuille

Merci d'avance

Bonour,

je ne suis pas sur d'avoir compris ta question:
regarde les explications et dis moi si c'est de cela qu'il s'agit:
Code:
Private Sub CommandButton3_Click() 'accepter modification

'********************************************************************************************************
'******************************  COMMENTAIRE  ***********************************************************
'with sheets ("nom de la feuille")te specifie ou ecrire
'ensuite le .cells(ligne,i) te dit ou ecrire dans cette feuille
'a toi de rajouter une feuille supplémentaire (onglet ) pour écrire dessus les données que tu as modifié
'en faisant ceci tu n'effaceras pas ta base de données originale.
'noublie pas non plus que du coup lorsque tu effectueras à nouveau une recherche tu pointeras
'alors toutes les lignes origines y compris celles que tu auras modifié mais sans la modification
'la variable ligne sera a redefinir pour ne pas laisser des lignes vierges.
'la difficultée qui se posera ensuite c'est comment retouvé toute les lignes qui aurant été modifié sur les deux feuilles.
'Enfin pour mon choix personnel je laisserai la même feuille pour éviter les complications futur.
'Tu peux aussi écrire le code sur deux feuilles.
'********************************************************************************************************
'********************************************************************************************************


With Sheets("BaseD")

'n = Range("A2", Range("A2").End(xlToRight)).Columns.Count
'MsgBox totcol
    For i = 1 To totcol - 1
        .Cells(Ligne, i) = Controls("TextBox" & i + 1)
    Next
End With
With ListView1
    .ListItems.Item(Idx) = TextBox2
    For i = 1 To totcol - 2
        .ListItems(Idx).SubItems(i) = Controls("TextBox" & i + 2)
    Next
End With
For j = 2 To totcol
    Controls("TextBox" & j) = ""
Next

End Sub

A bientôt.
 

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 040
Membres
104 010
dernier inscrit
Freba