• Initiateur de la discussion Initiateur de la discussion yonini
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

yonini

XLDnaute Nouveau
Bonjour à tous,

Je me permets de venir poster ici mon pb avec mon code, car je n'arrive pas à trouver pourquoi ca coince...
Mon code :
Code:
Sub Archiver_affaire()

    'Déverrouille les pages
    Worksheets("Saisie").Unprotect
    Worksheets("Donnees").Unprotect
    Worksheets("Archives").Unprotect
    
    ligne = Worksheets("Saisie").Range("Ligne_Aff_Ref")
    ' Prochaine ligne disponible
    ligne_archive = Worksheets("Archives").Range("Nb_Affaires_Archives") + 5
    Affaire = Sheets("Saisie").Range("Saisie_MO") + " - " + Sheets("Saisie").Range("Saisie_Nom") + " - " + Sheets("Saisie").Range("Saisie_Ville") + " - " + Sheets("Saisie").Range("Saisie_Archi")

    If MsgBox("Etes-vous sûr de vouloir archiver l'affaire " & Affaire & " ?", vbYesNo) = vbYes Then
        Worksheets("Donnees").Rows(ligne).Copy
        Application.DisplayAlerts = False
        Worksheets("Archives").Paste (Worksheets("Archives").Rows(ligne_archive))
        Application.DisplayAlerts = True
       
        'Supprime l'affaire du tableau données
        Worksheets("Donnees").Rows(ligne).Delete Shift:=xlUp
        
        'Evite la mise à jour de l'affaire sur l'affaire suivante
        Worksheets("Saisie").Range("Ligne_Aff_Ref") = 0
        
        'Met la liste des affaires à jour
        Worksheets("Saisie").Activate
        Call Remplir_Liste_Affaire
        MsgBox ("L'archivage de l'affaire a été effectuée")
    
    Else
        MsgBox ("L'affaire n'a pas été archivée")

    End If
    
   'Verrouille les pages
   Worksheets("Saisie").Protect
   Worksheets("Donnees").Protect
   Worksheets("Archives").Protect
    
End Sub

Le soucis, c'est que j'ai un message d'erreur sur la ligne "Worksheets("Donnees").Rows(ligne).Delete Shift:=xlUp" qui me dit
"Le méthode delete de la classe Range a échoué"

J'ai fait qq tests, comme supprimer tout ce qu'il y a avant, cela fonctionne, ma ligne est supprimée, et j'ai aussi supprimé "Worksheets("Donnees").Rows(ligne).Delete Shift:=xlUp", le code marche bien...

Qq saurait-il voir où se trouve mon pb ?
Merci d'avance !
 
Re : VBA : Delete rows

re,
Ce genre de réponse m'épate toujours
1 - qu'est ce qui t'empêche de mettre des données bidons ????
2 - inutile de poster tout le fichier mais uniquement ce qui concerne la question
3 - inutile de fournir 30 000 lignes, qq unes suffiront
A+
kjin
 
Re : VBA : Delete rows

Essaie avant le Delete d'activer la feuille sur laquel tu veux supprimer une ligne :
Worksheets("Donnees").Activate

En outre, il faut que ta procédure soit dans un module et pour limiter l'impact en terme de délai d'éxécution, un Application.EnableEvents=False et Application.ScreenUpdating=False sont les bienvenus !
 
Re : VBA : Delete rows

Merci yoyoton,

Pour le Activate, j'ai essayé, mais ce n'est pas ca qui a permit de résoudre le pb. J'ai dû remettre un Worksheets("Donnees").Unprotect devant le delete...

Sinon pour le Application.ScreenUpdating=False et Application.EnableEvents=False, ils sont déjà mis dans la "private Sub" qui fait appel à "Archiver_affaire" 😉 Mais merci pour le conseil !
 
Re : VBA : Delete rows

@ Pierrot :
Pour le "Activate", c'est rarement utile, mais pour ma part, ça l'a été dans le cadre de création de rectangle car Excel a parfois du mal à se repérer en pixel, si la feuille n'est pas active.

Malheureusement, comme en témoigne cette expérience, VBA n'est pas toujours très rationnel : la solution de yonini a été de supprimer la protection de la feuille une seconde fois...

Au fait Nini... quand tu quittes ta feuille "Saisie", ou l'activation d'une autre feuille, ça n'activerait pas une autre macro qui par hasard reprotègerai la feuille "Données" ? D'où l'utilité du EnableEvents=False ? En effet, le "Paste" active la feuille "Archives" !
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
712
Réponses
4
Affichages
646
Réponses
11
Affichages
842
Réponses
6
Affichages
765
Retour