Ouverture de macro vba sur un nouveau poste
Résolu
Co_nexion
Messages postés
328
Date d'inscription
Statut
Membre
Dernière intervention
-
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 12263 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour à tous,
Je me retrouve bloqué en voulant utilisé mes macros sur un nouveau poste et pourtant les deux sont en excel 2010 et sous seven.
Voici le code et en gras la ligne qui bloque (IF DCLA > 1 then). Le message d'erreur est bibliothèque ou projet introuvable.
Pourriez vous m'aider à comprendre ce blocage ?
Je me retrouve bloqué en voulant utilisé mes macros sur un nouveau poste et pourtant les deux sont en excel 2010 et sous seven.
Voici le code et en gras la ligne qui bloque (IF DCLA > 1 then). Le message d'erreur est bibliothèque ou projet introuvable.
Pourriez vous m'aider à comprendre ce blocage ?
'Mettre à jour les cycles Dim Derlig As Long, i As Long With Sheets("FTP") Derlig = .Range("L" & Rows.Count).End(xlUp).Row For i = 2 To Derlig 'If .Range("N" & i) < .Range("W" & i) Then ' ou If .Cells(i, 14) < .Cells(1, 23) Then .Range("L" & i) = .Range("N" & i) + 1 ' ou '.Cells(i, 12) = .Cells(i, 14) + 1 .Range("N" & i) = .Range("L" & i) + .Range("M" & i) ' ou '.Cells(i, 14) = .Cells(i, 12) + .Cells(i, 13) End If Next i End With 'Test pour contrat(s) mois en cours 'pour la dernière ligne de la colonne A 'DCLA = Worksheets("CDD_Fin_de_Contrat").Range("A" & Rows.Count).End(xlUp).Row If DCLA > 1 Then 'Worksheets("CDD_Fin_de_Contrat").Range("A2:N" & DCLA).ClearContents Worksheets("CDD_Fin_de_Contrat").Range("A2:N29").ClearContents End If 'pour la dernière ligne de la colonne A DCLA = Worksheets("CDD").Range("A" & Rows.Count).End(xlUp).Row ReDim NumLigne(DCLA) 'Copie donnees pour tri et listbox Worksheets("CDD_Fin_de_Contrat").Range("A2:N" & DCLA) = Worksheets("CDD").Range("A2:N" & DCLA).Value 'Mois pour test Mois_Courant = Format(Date, "mm") 'Pointeur pour recherche x = 2 Rangee = 2 Worksheets("CDD_Fin_de_Contrat").Activate Application.ScreenUpdating = False With Worksheets("CDD_Fin_de_Contrat") Do While .Cells(x, "G") <> "" If Format(CDate(.Cells(x, "G")), "mm") <> Mois_Courant Then Rows(x & ":" & x).Delete xlUp x = x - 1 Else NumLigne(x - 2) = Rangee End If x = x + 1 Rangee = Rangee + 1 Loop 'pour la dernière ligne de la colonne A DCLA = .Range("A" & Rows.Count).End(xlUp).Row 'Fin selection If DCLA = 1 And .Range("A2") = "" Then Me.CommandButton9.Enabled = False Exit Sub Else Me.CommandButton9.Enabled = True End If End With Application.ScreenUpdating = True End Sub
A voir également:
- Ouverture de macro vba sur un nouveau poste
- Comment créer un nouveau groupe sur whatsapp - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Créer un nouveau compte gmail - Guide
- Nouveau site coco chat - Accueil - Réseaux sociaux
- Créer un nouveau compte google - Guide
1 réponse
Bonjour,
Si DCLA est une variable, avant de tester (If DCLA > 1), il te faut :
1- la déclarer,
2- lui affecter une valeur.
Dans ton cas, DCLA est une valeur numérique donc de type Long (le nombre de ligne pouvant en effet être trop important pour une variable de type Integer, surtout depuis les versions > 2007), de plus, tu as laissé l'apostrophe en début de la ligne ou tu affectes une valeur à DCLA, donc essaye (les modifs en gras) :
Cordialement,
Franck P
Si DCLA est une variable, avant de tester (If DCLA > 1), il te faut :
1- la déclarer,
2- lui affecter une valeur.
Dans ton cas, DCLA est une valeur numérique donc de type Long (le nombre de ligne pouvant en effet être trop important pour une variable de type Integer, surtout depuis les versions > 2007), de plus, tu as laissé l'apostrophe en début de la ligne ou tu affectes une valeur à DCLA, donc essaye (les modifs en gras) :
'Mettre à jour les cycles Dim Derlig As Long, i As Long, DCLA As Long With Sheets("FTP") Derlig = .Range("L" & Rows.Count).End(xlUp).Row For i = 2 To Derlig 'If .Range("N" & i) < .Range("W" & i) Then ' ou If .Cells(i, 14) < .Cells(1, 23) Then .Range("L" & i) = .Range("N" & i) + 1 ' ou '.Cells(i, 12) = .Cells(i, 14) + 1 .Range("N" & i) = .Range("L" & i) + .Range("M" & i) ' ou '.Cells(i, 14) = .Cells(i, 12) + .Cells(i, 13) End If Next i End With 'Test pour contrat(s) mois en cours 'pour la dernière ligne de la colonne A DCLA = Worksheets("CDD_Fin_de_Contrat").Range("A" & Rows.Count).End(xlUp).Row If DCLA > 1 Then 'Worksheets("CDD_Fin_de_Contrat").Range("A2:N" & DCLA).ClearContents Worksheets("CDD_Fin_de_Contrat").Range("A2:N29").ClearContents End If 'pour la dernière ligne de la colonne A DCLA = Worksheets("CDD").Range("A" & Rows.Count).End(xlUp).Row ReDim NumLigne(DCLA) 'Copie donnees pour tri et listbox Worksheets("CDD_Fin_de_Contrat").Range("A2:N" & DCLA) = Worksheets("CDD").Range("A2:N" & DCLA).Value 'Mois pour test Mois_Courant = Format(Date, "mm") 'Pointeur pour recherche x = 2 Rangee = 2 Worksheets("CDD_Fin_de_Contrat").Activate Application.ScreenUpdating = False With Worksheets("CDD_Fin_de_Contrat") Do While .Cells(x, "G") <> "" If Format(CDate(.Cells(x, "G")), "mm") <> Mois_Courant Then Rows(x & ":" & x).Delete xlUp x = x - 1 Else NumLigne(x - 2) = Rangee End If x = x + 1 Rangee = Rangee + 1 Loop 'pour la dernière ligne de la colonne A DCLA = .Range("A" & Rows.Count).End(xlUp).Row 'Fin selection If DCLA = 1 And .Range("A2") = "" Then Me.CommandButton9.Enabled = False Exit Sub Else Me.CommandButton9.Enabled = True End If End With Application.ScreenUpdating = True End Sub
Cordialement,
Franck P