Problème INSERT

licwimi

XLDnaute Nouveau
Bonjour à tous,

Je travaille sur une feuille de suivi qui s'appelle "Suivi" et j'aimerais qu'à chaque modification d'une ligne, celle-ci (la ligne complète) soit insérée dans une feuille historique "Histo" .
J'ai essayé:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
i = Target.Row
Sheets("Histo").Rows(i).Insert (xlShiftDown)
End Sub

Mais ça ne m'insère rien dans ma feuille historique...

Si il y a une solution plus facile avec une copie, je suis preneur aussi, mais j'ai essayé et je n'ai pas réussi avec les méthodes Copy, Select, Paste et Sheets("Histo").Cells(i,k).Value = Sheets("Suivi").Cells(i,k).Value avec une boucle sur k (k étant la colonne)


Merci d'avance pour votre aide !!
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Problème INSERT

Re,

ne commence à copier dans l'historique que la fois d'après que le fichier est ouvert après le remplissage de la ligne. Est ce que ma demande est clair ?
euh..; pas trop... sachant que nous sommes dans une procédure evénementielle qui se déclenche lors d'une modification de cellule.. vois pas trop où tu veux en venir...
 

licwimi

XLDnaute Nouveau
Re : Problème INSERT

ok, par exemple en changeant la procédure évenementielle, je ne sais pas si ça peut se faire.
Mais là en gros avec ce code, dès que je rentre ma première cellule, il le copie dans l'historique. Mais, mon besoin ne se situe pas exactement là, mon besoin est d'enregistrer la ligne que lorsqu'elle a été préalablement remplie et qu'on la modifie ensuite, c'est lors de cette modification que je veux que l'insertion dans l'historique . Je suis un peu plus clair ?

En tout cas merci beaucoup, l'insertion fonctionne maintenant, peut être que si je réfléchis un peu je vais trouver pour le reste...
 

Pierrot93

XLDnaute Barbatruc
Re : Problème INSERT

Re,

peut être faire un test, si sur la ligne de la cellule modifiée, un certain nombre de cellules est renseignées....
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Application.CountA(Rows(Target.Row)) > 10 Then
    MsgBox "ok pour copie"
    'ton code
End If
End Sub
 

licwimi

XLDnaute Nouveau
Re : Problème INSERT

Bonjour Pierrot93,

Merci pour tes réponses rapides, en fait je vais faire un bouton sur lequel l'utilisateur cliquera lorsqu'il aura fini de remplir la ligne en cours (en fait, l'utilisateur peut ne remplir que 3 cases ou 10 comme il le souhaite, la ligne ne doit être mise dans l'historique que lorsqu'il change de ligne.)

Du coup je vais réutiliser ton code :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
With Sheets("Histo")
    .Rows(Target.Row).Insert xlShiftDown
    Rows(Target.Row).Copy .Rows(Target.Row)
End With
End Sub

Mais du coup Target apparaît comme non définie dans le message d'erreur. Dans quelle variable Excel stocke-t-il la variable correspondant à la dernière ligne modifiée?

Autre question mais moins en rapport avec ma question et plus avec ton code:
Qu'est-ce que cela signifie exactement ?
Application.CountA(Rows(Target.Row)) > 10
Que le nombre de modifications qui viennent d'être faites sur la ligne est supérieur à 10 ?


Merci pour ton (votre!!) aide!
 

Pierrot93

XLDnaute Barbatruc
Re : Problème INSERT

Bonjour,

Comprends pas trop, "Target" est défini en tant qu'objet "range" comme argument de la procédure événementielle " Worksheet_Change"…

Application.CountA(Rows(Target.Row)) > 10
Que le nombre de modifications qui viennent d'être faites sur la ligne est supérieur à 10 ?

vérifie que le nombre de cellules renseignées sur la ligne de la cellule modifiée est supérieure à 10 (à adapter selon ton projet)..

bonne journée
@+
 

licwimi

XLDnaute Nouveau
Re : Problème INSERT

Ok merci !

Du coup ce que j'ai fait, c'est que j'ai mis mon Worksheet_change en Public, et j'ai repris mon i =Target.Row dans cette procédure évènementielle pour l'utiliser dasn mon bouton, comme ça j'ai toujours la dernière ligne modifiée.

Merci pour ton aide !!

Ciao
 

licwimi

XLDnaute Nouveau
Re : Problème INSERT

J'ai encore une petite question. Dans mes lignes, j'ai des listes issues de la validation de données. Lors de la copie vers la feuille "Histo", j'aimerais qu'il ne copie que la valeur dans la cellule et non la liste déroulante complète.
Merci d'avance pour le coup de pouce!
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 849
Membres
103 974
dernier inscrit
chmikha