Roseline
XLDnaute Occasionnel
Bonjour,
J'ai une commande VBA qui me permet d'enlever des lignes dans un onglet et de les envoyer automatiquement dans un autre dès que j'inscrit le mot terminé dans une cellule.
Ma commande cherche donc la dernière ligne de mon autre onglet et transpose les données à cet endroit là.
Mon interrogation, je voudrais que lorsque je sélectionne l'option "terminé", ma ligne complète s'enlève de mes 25 premières lignes et aille s'ajouter à la dernière ligne des lignes 26 à 36 de dossiers finalisés mais dans le même onglet
Je m'explique: Mon onglet est divisé de cette manière…..
Dossier en cours : 25 premières lignes
Dossiers finalisés: 26 à 36 lignes suivantes
Total des dépenses les 37 à 40 dernières lignes du fichier
Voici mon sub que j'ai actuellement pour envoyer dans un autre onglet et qui fonctionne parfaitement mais je suis incapable de l'adapter pour que les données reste dans le même onglet mais s'insère dans la plage de dossiers finalisés des lignes 26 à 36.
Sub termine() 'Transfert les dossiers réglés
Dim motcle
Dim I As Byte
Dim c As Range
Dim F As String
Dim ligne As Long
'On définit les mots clés
motcle = Array("terminé")
'on effectue la recherche de chaque mot clé dans la colonne I de la feuille "xxxx"
For I = 0 To UBound(motcle)
Do
Set c = Worksheets("xxx").Columns(9).Find(motcle(I), LookIn:=xlValues, lookat:=xlPart)
'si le mot clé est trouvé
If Not c Is Nothing Then
'on définit le nom de la feuille où sera effectué la copie
F = "yyy" '& (I + 2)
With Worksheets(F)
'enlever les filtres s'il y a lieu
If .FilterMode = True Then .ShowAllData
'on définit la ligne ou sera effectué le collage
ligne = .Range("A" & Rows.Count).End(xlUp).Row + 1
'on effectue le copier/coller
c.EntireRow.Copy .Range("A" & ligne)
'on supprime la ligne dans la feuille xxx
c.EntireRow.Delete
End With
End If
Loop While Not c Is Nothing
Next I
End Sub
Merci encore de votre précieuse aide.
J'ai une commande VBA qui me permet d'enlever des lignes dans un onglet et de les envoyer automatiquement dans un autre dès que j'inscrit le mot terminé dans une cellule.
Ma commande cherche donc la dernière ligne de mon autre onglet et transpose les données à cet endroit là.
Mon interrogation, je voudrais que lorsque je sélectionne l'option "terminé", ma ligne complète s'enlève de mes 25 premières lignes et aille s'ajouter à la dernière ligne des lignes 26 à 36 de dossiers finalisés mais dans le même onglet
Je m'explique: Mon onglet est divisé de cette manière…..
Dossier en cours : 25 premières lignes
Dossiers finalisés: 26 à 36 lignes suivantes
Total des dépenses les 37 à 40 dernières lignes du fichier
Voici mon sub que j'ai actuellement pour envoyer dans un autre onglet et qui fonctionne parfaitement mais je suis incapable de l'adapter pour que les données reste dans le même onglet mais s'insère dans la plage de dossiers finalisés des lignes 26 à 36.
Sub termine() 'Transfert les dossiers réglés
Dim motcle
Dim I As Byte
Dim c As Range
Dim F As String
Dim ligne As Long
'On définit les mots clés
motcle = Array("terminé")
'on effectue la recherche de chaque mot clé dans la colonne I de la feuille "xxxx"
For I = 0 To UBound(motcle)
Do
Set c = Worksheets("xxx").Columns(9).Find(motcle(I), LookIn:=xlValues, lookat:=xlPart)
'si le mot clé est trouvé
If Not c Is Nothing Then
'on définit le nom de la feuille où sera effectué la copie
F = "yyy" '& (I + 2)
With Worksheets(F)
'enlever les filtres s'il y a lieu
If .FilterMode = True Then .ShowAllData
'on définit la ligne ou sera effectué le collage
ligne = .Range("A" & Rows.Count).End(xlUp).Row + 1
'on effectue le copier/coller
c.EntireRow.Copy .Range("A" & ligne)
'on supprime la ligne dans la feuille xxx
c.EntireRow.Delete
End With
End If
Loop While Not c Is Nothing
Next I
End Sub
Merci encore de votre précieuse aide.