[Résolu]Erreur que je ne saisis pas avec Range

ckoebel5

XLDnaute Junior
Bonjour le forum, je fais appel à vos lumières pour éclairer mon incapacité à trouver. Dans le code ci dessous, l'avant dernière ligne sheets fonctionne mais pas la dernière sheets. Pourquoi? Les plages ont me semble -t-il les mêmes dimensions. Comment rectifier cette dernière ligne?
Code:
Private Sub ListerRésultatClasse(clas As String, Compét As String) 'affiche les résultats annuels
' la chaine ABCD des résultats obtenus à la compétence selectionnée et le pourcentage de réussite associé
Dim TLC As Range, lign As Long, dl As Long, l As Long, Rés As String, TabloRésClas, n As Long, PR As Integer
UfComp.LbxRésultClasse.Clear
Me.Label1 = "Résultats de la classe de " & clas & " pour la compétence " & Compét
Set TLC = FLstÉlv.[TouteLaClasse]
n = TLC.Rows.Count
ReDim TabloRésClas(1 To n)
dl = TLC.Row - 1
If Compét = "" Then
    For l = 1 To n
        lign = l + dl
        UfComp.LbxRésultClasse.AddItem FLstÉlv.[Prénom].Rows(lign).Value
    Next l
    Exit Sub
Else ' si une compétence est sélectionnée
    ColCompAnnu = FAnnuelle.Rows(1).Find(what:=Compét).Column
    ColCompCentAnnu = Sheets("Base annuelle").Range("CodCompCentage").Find(what:=Compét).Column
    For l = 1 To n
        lign = l + dl
        Rés = FAnnuelle.Columns(ColCompAnnu).Rows(lign).Value
        UfComp.LbxRésultClasse.AddItem FLstÉlv.[Prénom].Rows(lign).Value
        UfComp.LbxRésultClasse.List(LbxRésultClasse.ListCount - 1, 1) = Rés
        If Not Rés = "" Then
            PR = PourcentRéussite(Rés)
            UfComp.LbxRésultClasse.List(LbxRésultClasse.ListCount - 1, 2) = PR & " %"
            TabloRésClas(l) = PR
        End If
    Next l
Sheets("Base annuelle").Range("PlageCoulComp").Value = Application.WorksheetFunction.Transpose(TabloRésClas)   'voir gestionnaire de nom
Sheets("Base annuelle").Range(Cells(dl + 1, ColCompCentAnnu), Cells(dl + n, ColCompCentAnnu)).Value = Application.WorksheetFunction.Transpose(TabloRésClas)
End If
End Sub
Pour info dans mes essais, dl=3, n=7 et ColCompCentAnnu=325, et le message erreur d'execution 1004 apparait, erreur définie par l'application ou par l'objet. Et l'ensemble fonctionne très bien lorsque j'enlève cette dernière ligne...Merci pour votre aide.
 
Dernière édition:
G

Guest

Guest
Re : Erreur que je ne saisis pas avec Range

Bonsoir,

Certainement à cause des Cells(dl....) dont la feuille parente n'est pas identifée.

Si la macro est lancée sur une autre feuille que Base annuelle: ça plante

remplacer par:
Code:
With Sheets("Base annuelle")
    .Range(.Cells(dl + 1, ColCompCentAnnu), .Cells(dl + n, ColCompCentAnnu)).Value = Application.WorksheetFunction.Transpose(TabloRésClas)
End With

A+
 

Discussions similaires

Réponses
1
Affichages
1 K

Statistiques des forums

Discussions
312 112
Messages
2 085 411
Membres
102 885
dernier inscrit
AISSOU