Couper/coller ligne selon valeur d'une cellule

jomortuary

XLDnaute Nouveau
Bonjour à tous,

Voici mon soucis j'ai un classeur Excel avec deux Onglets : Suivi_Crys_MT et Historique

Chaque onglet contient la même trâme de tableau, à savoir un tableau de 35 colonnes avec mes entêtes en ligne 8 et ma première ligne de donnée en ligne 9

J'aimerais créer une macro qui me permet lorsque dans la colonne 33 et ceux pour n'importe qu'elles lignes de cette colonne lorsqu'on saisie une date couper la ligne ou la date vient d'être saisie, puis la coller dans l'onglet historique (chaque ligne couper et coller devront être incrémenter automatiquement dans l'onglet historique)

Voila j'ai quelques pistes mais je n'arrive pas vraiment à faire ce que j'ai décris plus haut

Ex :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveCell.EntireRow.Copy Sheets("F3_Historique").Range("A65535").End(xlUp).Offset(1, 0)
End Sub

Cette macro me copie la ligne en dessous de celle ou j'ai saisie la date et en plus il n'y a pas d'incrémentation dans le tableau de l'onglet historique lorsqu'une seconde date est saisie sur une autre ligne du tableau Suivi_Crys_MT, elle est copiée à la place de la précédente dans le tableau historique

Voila un peu long comme résumé, j'espère que c'est claire !

J'en invoque les dieux de VBA !!

Merci d'avance pour votre aide
 

Gorfael

XLDnaute Barbatruc
Re : Couper/coller ligne selon valeur d'une cellule

Salut jomortuary et le forum
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range, Plage As Range
Set Plage = Intersect(Target, Range([AG9], Cells(Rows.Count, "AG").End(xlUp)))
If Plage Is Nothing Then Exit Sub
For Each Cel In Plage
    If IsDate(Cel) Then
        With Sheets("Historique")
            Rows(Cel.Row).Copy .Cells(Rows.Count, "A").End(xlUp)(2)
        End With
    End If
Next Cel
Application.CutCopyMode = False
End Sub
Je n'ai pas testé, mais c'est un code simple, fait d'après les données.
Si tu préfères couper, il suffit de remplacer ".Copy" par ".Cut"
A+
 

jomortuary

XLDnaute Nouveau
Re : Couper/coller ligne selon valeur d'une cellule

Encore un petit problème

En faite ma date est récupérée automatiquement avec une fonction personnalisée dans l'ERP de mon entreprise et dans ce cas la macro ne détecte plus l'évènement change car il y a une formule

Encore un petit coupe de pouce merci d'avance

Joffrey
 

jomortuary

XLDnaute Nouveau
Re : Couper/coller ligne selon valeur d'une cellule

C'est une formule personnalisé qui extrait une date en fonction d'un numéro de projet dans notre ERP BaaN

Voici la formule :
Public Function Date_fac(Projet As String) As String

Dim sql_select As String
Dim RC As String
Projet = CStr(Projet)
Set Db = OpenDatabase("", False, True, "ODBC;DSN=CR-ELOI-BAAN;UID=CRYOLOR;PWD=CRYOLOR")
sql_select = "SELECT T$ddat FROM BAANDB.TTDSLS045100 WHERE (TTDSLS045100.T$CPRJ='" & Projet & "')"
Set pcs020 = Db.OpenRecordset(sql_select, dbOpenDynaset, dbSQLPassThrough)
On Error GoTo infonofind
pcs020.MoveFirst
RC = pcs020(0)
pcs020.Close

GoTo suite
infonofind:
'MsgBox "Article non trouvé !"
RC = 0
Exit Function
suite:
'MsgBox stock
Date_fac = RC

End Function



Merci d'avance
 

Discussions similaires

Statistiques des forums

Discussions
312 487
Messages
2 088 823
Membres
103 971
dernier inscrit
abdazee