Copie Non conforme

zeltron24

XLDnaute Impliqué
Bonjour à vous tous,

Déjà merci à vous tous pour nous donner de votre temps et vos connaissances.

Voila, j'ai un petit souci sur un classeur d'archivage que j'ai modifié grâce à vos astuces et fichiers que j'ai cherché un peu partout sur le forum.
L'archivage de mes données ne se passe pas normalement.
Voudriez vous me donner un petit coup de pouce, d'avance merci

Zeltron24
 

Pièces jointes

  • TestArchive.xls
    90.5 KB · Affichages: 53

CHALET53

XLDnaute Barbatruc
Re : Copie Non conforme

bonjour,
Essaie de remplacer ton programme Sub ArchivTache() par celui-ci

Sub ArchivTache()
Dim Cell As Variant
Dim LgLign As Long
Dim LgDerLign As Long

Sheets("Fetes").Activate
For lgLig = 14 To Range("F65536").End(xlUp).Row

' Test de présence de "x" dans F
If Range("F" & lgLig).Value = "x" Then
With Sheets("Archives")

LgDerLign = .Range("B65536").End(xlUp).Row + 1
.Range("A" & LgDerLign) = Range("B2").Value '.Range("A" & LgDerLign).Offset(-1, 0) + 1
Range("G" & lgLig).Copy .Range("B" & LgDerLign) ' Catégorie
Range("H" & lgLig).Copy .Range("C" & LgDerLign) ' Tâche
Range("I" & lgLig).Copy .Range("D" & LgDerLign) ' Date
Range("J" & lgLig).Copy .Range("E" & LgDerLign) ' Heure

End With
End If


Next lgLig
Range("A1").Select
End Sub
 

zeltron24

XLDnaute Impliqué
Re : Copie Non conforme

Bonsoir CHALET53,

Super ça fonctionne un grand merci à vous pour ton aide.
Si je me permettrai, je solliciterai votre aide pour perfectionner la macro.
Serait il possible de recopier les commentaires en H

Merci
Zeltron24
 
Dernière édition:

zeltron24

XLDnaute Impliqué
Re : Copie Non conforme

Bonsoir CHALET53,

Super ça fonctionne un grand merci à toi pour ton aide.
Si je me permet je solliciterai votre aide pour perfectionner la macro.
Serait il possible de supprimer les lignes qui ont été archivées dans la feuille "fetes" afin de ne pas les recopier si il y a d'autres tâches à archiver.
Et aussi, comment recopier les commentaires en H
merci
Zeltron24
 

zeltron24

XLDnaute Impliqué
Re : Copie Non conforme

re,
Merci CHALET53.
C'est impeccable.
Serait il possible de ne pas copier les lignes ou figure "IMPOSSIBLE" car la date n'étant pas échue, il ne serait pas normal d'archiver celles ci. Au cas ou l'on mettrait un x dans ces colonnes. Sécurité oblige.
Merci encore pour votre aide
 

zeltron24

XLDnaute Impliqué
Re : Copie Non conforme

Re,

J'ai retravaillé le fichier que vous m'avez envoyé et que je vous remercie encore, mais j'ai un souci avec la boucle For et Next.
Pourriez vous y jeter un coup d'oeil et m'expliquer le pourquoi.
Merci
Guy
 

Pièces jointes

  • zeltron11.xls
    120 KB · Affichages: 28
Dernière édition:

CHALET53

XLDnaute Barbatruc
Re : Copie Non conforme

Essaie cette procédure
Je m'y perds un peu dans tous tes tests


Sub ArchivTache()
Dim Cell As Variant
Dim LgLign As Long
Dim LgDerLign As Long
Dim i As String


Sheets("Fetes").Activate
i = [F13]
If Range("F13").Value = 0 Then
Unload FrmNettoyer
réponse = MsgBox("Il n'y a pas de tâche(s) à archiver...", 64, "Info")

Exit Sub
End If

If Range("F13").Value = 1 And Range("K13").Value = 0 Then
Unload FrmNettoyer
réponse = MsgBox("Il y a " & [F13] & " tâche à archiver...", vbYesNo, "Info")

If réponse = 7 Then Exit Sub
End If

If Range("F13").Value > 1 Then
Unload FrmNettoyer
réponse = MsgBox("Il y a " & [F13] & " tâches à archiver...", vbYesNo, "Info")

If réponse = 7 Then Exit Sub
End If

If Range("K13").Value > 0 Then
Unload FrmNettoyer
MsgBox "La date n'est pas encore échue...", 64, "Info"
Exit Sub
End If

Sheets("Fetes").Activate
For lgLig = 14 To Range("F65536").End(xlUp).Row

' Test de présence de "x" dans F
If Range("K" & lgLig).Value = "Accomplie" Then
With Sheets("Archives")

LgDerLign = .Range("B65536").End(xlUp).Row + 1
.Range("A" & LgDerLign) = Range("B2").Value
Range("G" & lgLig).Copy .Range("B" & LgDerLign) ' Catégorie
Range("H" & lgLig).Copy .Range("C" & LgDerLign) ' Tâche
Range("I" & lgLig).Copy .Range("D" & LgDerLign) ' Date
Range("J" & lgLig).Copy .Range("E" & LgDerLign) ' Heure
.Range("F" & LgDerLign) = Range("K" & lgLig)
End With
Range(Cells(lgLig, 6), Cells(lgLig, 10)).ClearContents

End If
Next lgLig
Range("A1").Select
Unload FrmNettoyer
MiseEnFormArchive



If i = 1 Then
MsgBox "Votre tâche à bien été archivée...", 64, "Info"

Else
If i > 1 Then
MsgBox "Vos " & i & " tâches ont bien été archivées...", 64, "Info"
End If

End If
i = ""
TriFete
End Sub
 

Discussions similaires

Réponses
1
Affichages
218

Statistiques des forums

Discussions
312 158
Messages
2 085 831
Membres
102 997
dernier inscrit
sedpo