Probleme affectation worksheet

Résolu/Fermé
develySIDE Messages postés 50 Date d'inscription lundi 15 octobre 2012 Statut Membre Dernière intervention 27 avril 2016 - Modifié par develySIDE le 16/03/2016 à 11:14
develySIDE Messages postés 50 Date d'inscription lundi 15 octobre 2012 Statut Membre Dernière intervention 27 avril 2016 - 16 mars 2016 à 16:29
Bonjour,

Pour m'éviter les doublons et les prises de place incessante, j'ai réaliser une affectation de variable tel que :

Dim wb As Workbook
Dim sh As Worksheet
Dim i As Integer
Dim j As Integer
Dim annee As Date
Dim moisnaiss As Integer

Set wb = ThisWorkbook
Set sh = Sheets("Mois_1")
i = 4
j = 1


Cependant, lorsque j'éxecute le code si dessous, j'obtient une erreur " Propriété ou méthode non gérer par cet objet " sur le début du while, j'en conclu donc que c'est mon affectation de feuille qui ne fonctionne pas ( ayant fait des test sur le wb ), si quelqu'un pouvais m'indiquez mon erreur que je puisse la comprendre, merci d'avance

While wb.sh.Range("E" & i) <> ""
    If wb.sh.Range("B" & i) <> "" Then
    
        annee = wb.sh.Range("B" & i).Value
        anneenaiss = Year(CDate(annee))
        moisnaiss = Month(CDate(annee))
        'MsgBox (anneenaiss)
        If anneefichier - anneenaiss <= 6 Then
            If anneenaiss = 2009 Then
                If moisnaiss <= Month(Now()) Then
                    wb.sh.Range("A" & j).Value = wb.sh.Range("C" & i + 1).Value
                    j = j + 1
                Else
                    wb.sh.Range("B" & j).Value = wb.sh.Range("C" & i + 1).Value
                    j = j + 1
                End If
            Else
                wb.sh.Range("B" & j).Value = wb.sh.Range("C" & i + 1).Value
                j = j + 1
            End If
        Else
            wb.sh.Range("A" & j).Value = wb.sh.Range("C" & i + 1).Value
            j = j + 1
        
        End If
        
    End If
    i = i + 1

Wend

End Sub

1 réponse

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
16 mars 2016 à 12:13
Bonjour Develyside, bonjour le forum,

Pas sûr que ça fonctionne mais essaie cela. Définit la variable sh comme ça:

Set sh = ThisWorkbook.Sheets("Mois_1")

et par la suite, pour faire référence à l'onglet utilise simplement sh et non pas wb.sh. D'ailleurs, si tout se passe dans le même classeur (ThisWorkbook), tu peux te passer de la variable wb...
0
develySIDE Messages postés 50 Date d'inscription lundi 15 octobre 2012 Statut Membre Dernière intervention 27 avril 2016
16 mars 2016 à 16:29
Effectivement, en enlevant le wb devant chaque sh tout fonctionne comme il faut, merci beaucoup
0