XL 2010 Procédure PasteSpecial - SOS Débogage

  • Initiateur de la discussion Initiateur de la discussion jeanba
  • 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 !

jeanba

XLDnaute Occasionnel
Bonjour à tout le Forum,

J'ai fait quelques recherches et avec l'aide en ligne de notre communauté XLNaute ci et là, j'ai pu réalisé le programme ci-joint.
Mais, depuis 2 jours, il plante sur une ligne relative à la procédure de collage spéciale Valeurs. Et oui, c'est le problème justement de nous autres qui copions/collons des codes sans tout comprendre...

En tout cas, j'ai besoin de votre aide, car je sais pas à quel niveau est le problème, surtout que le code s'exécute partiellement!

Voic le code et le fichier joint:

Code:
Sub CopierColler()
Dim wsh As Worksheet, derlig&, xrg As Range

Application.ScreenUpdating = False
Worksheets("Centralisation").Range("A2:H" & Rows.Count).ClearContents

    For Each wsh In ThisWorkbook.Worksheets
        If IsDate("1-" & wsh.Name) Then
            If Len(wsh.Range("A3")) > 0 Then
                With Worksheets("Centralisation")
                    derlig = wsh.Cells(Rows.Count, "A").End(xlUp).Row
                    If derlig > 2 Then
                        Set xrg = .Cells(Rows.Count, "B").End(xlUp).Offset(1)
                        wsh.Range("A3:G" & derlig).Copy xrg
                        xrg.PasteSpecial Paste:=xlPasteValues[/color]  ' C'est ici que ça bugue
                       xrg.Offset(, -1).Resize(wsh.Range("A8:G" & derlig).Rows.Count) = Month("1-" & wsh.Name)
                    End If
                End With
            End If
        End If
    Next wsh
   
End Sub
 

Pièces jointes

Bonsoir

Essaye :
VB:
Sub JnalGeneral()
Dim wsh As Worksheet, derlig&, xrg As Range

Application.ScreenUpdating = False
Worksheets("Centralisation").Range("A2:H" & Rows.Count).ClearContents

    For Each wsh In ThisWorkbook.Worksheets
        If IsDate("1-" & wsh.Name) Then
            If Len(wsh.Range("A3")) > 0 Then
                With Worksheets("Centralisation")
                    derlig = wsh.Cells(Rows.Count, "A").End(xlUp).Row
                    If derlig > 2 Then
                        Set xrg = .Cells(Rows.Count, "B").End(xlUp).Offset(1)
                        wsh.Range("A3:G" & derlig).Copy
                        xrg.PasteSpecial Paste:=xlPasteValues
                        xrg.Offset(, -1).Resize(wsh.Range("A3:G" & derlig).Rows.Count) = Month("1-" & wsh.Name)
                    End If
                End With
            End If
        End If
    Next wsh
   
End Sub
 
Re bonsoir M12 et Chris401,

Je profite de vous soumettre encore ce code, je sais pas ce que j'ai ce soir mais je vois que dalle...

L'objectif, sélectionner la feuille "Centralisation" et exécuter tout mon code que PasteSpecial que là dessus.
Là encore, il bloque et suis incable, en bon débutant, de voir à quel niveau... :
Code:
Private Sub USF05_CommandButton3_Click()
Unload Me
Application.ScreenUpdating = False
Worksheets("Centralisation").Select   'Il bloque à ce niveau avec ce message d'erreur dans le fichier joint...
   With Selection
        .Visible = True
        Call JnalGeneral
        Call ImprimerFeuilleActive
    End With
End Sub

Capture.JPG
 
Bonsoir Chris401,

Fichier trop lourd...
Mais, c'est juste ce petit code là!
Après avoir changer Worksheets("Centralisation") par Sheets(".."), il ne bloque plus là-dessus, mais sur la ligne d'après, plus précisément sur l'instruction ".Visible = True"
 
Bonsoir,

c'est normal qu'il y ai erreur, ta feuille doit être cachée puisque tu fais: Visible = True
-------------------------------------------------------------------------------
Worksheets("Centralisation").Select 'Il bloque à ce niveau avec ce message d'erreur dans le fichier joint...
With Selection
.Visible = True
. . .
-------------------------------------------------------------------------------
pour sélectionner ta feuille il te faut d'abord la rendre visible !
Sheets("Centralisation") .Visible = True
 
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
7
Affichages
702
Réponses
1
Affichages
1 K
Retour