Ouverture de macro vba sur un nouveau poste
Résolu
Co_nexion
Messages postés
333
Statut
Membre
-
pijaku Messages postés 13513 Statut Modérateur -
pijaku Messages postés 13513 Statut Modérateur -
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
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Comment créer un nouveau groupe sur whatsapp - Guide
- Créer un nouveau compte gmail - Guide
- Créer un nouveau compte google - Guide
- Nouveau site coco chat - Accueil - Réseaux sociaux
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