Erreur d'exécution '9'
Fermé
fester66
Messages postés
2
Date d'inscription
lundi 15 avril 2013
Statut
Membre
Dernière intervention
16 avril 2013
-
16 avril 2013 à 11:47
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 16 avril 2013 à 16:22
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 16 avril 2013 à 16:22
A voir également:
- Erreur d'exécution '9'
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Code erreur f3500-32 ✓ - Forum Bbox Bouygues
- Erreur 4201 ✓ - Forum Réseaux sociaux
2 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
16 avril 2013 à 14:14
16 avril 2013 à 14:14
Bonjour,
La ligne que tu montre ne peu pas donner l'erreur 9 (erreur de dimensionnement)
Montre plutôt toute la procédure.
A+
La ligne que tu montre ne peu pas donner l'erreur 9 (erreur de dimensionnement)
Montre plutôt toute la procédure.
A+
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
16 avril 2013 à 16:22
16 avril 2013 à 16:22
Bon.. ont va commencer par le début..
Tu a une erreur de dénomination de variable.
Ton code est dans quel module ?
En haut du module (tout en haut) colle
Ça va déjà te permettre de trouver des erreurs dans tes variables.
Je verrais pour la suite en fonction de tes réponses.
Tu a une erreur de dénomination de variable.
Ton code est dans quel module ?
En haut du module (tout en haut) colle
Option Explicit
Ça va déjà te permettre de trouver des erreurs dans tes variables.
Je verrais pour la suite en fonction de tes réponses.
16 avril 2013 à 14:27
Merci pour ta réponse rapide. Voici la procédure complète :
A+
Sub feuille_heures_vide()
'
' macro création feuille d'heures depuis planning complet
' variables pour feuille_heure
Dim l_f As Integer
l_f = 0
Dim c_f As Integer
c_f = 0
' variables pour planning
Dim l_p As Integer
l_p = 0
Dim c_p As Integer
c_p = 0
' variables pour nom ouvrier
Dim l_of As Integer
l_of = 0
Dim c_of As Integer
c_of = 0
' variables choix semaine
Dim semtrouve As Range
Dim semcherche As String
semcherche = 32
'variable pour trouver n° devis de planning a chantier
Dim devtrouve As Range
Dim devcherche As String
'variable pour localiser devis dans le planning
Dim devis As Range
'variables pour chantier
Dim chantier As String
Dim lieu As String
Dim architecte As String
' variables pour sortir de la boucle principale
Dim fin As String
' variables d'incrémentation pour le planning
Dim l_v As Integer
l_pv = 0
Dim c_pv As Integer
c_pv = 0
' var ouvriers
Dim name As String
' var bon fournisseurs
Dim c_b As Integer
c_b = 0
Dim l_b As Integer
l_b = 0
'nbr aléatoire
Dim random As Long
' var pour liste_id
Dim c_id As Integer
c_id = 1
Dim l_id As Integer
l_id = 1
Dim actuel As Variant
'début programme
Application.DisplayAlerts = False
ChDir "N:\"
Workbooks.Open Filename:="N:\Administration\Bon.xlsm"
' ouvier la feuille_d'heure
Application.DisplayAlerts = False
ChDir "n:\"
Workbooks.Open Filename:="N:\Administration\feuille_heure.xlsm"
Workbooks("planning.xlsm").Worksheets("planning").Activate 'active feuille planning
semcherche = InputBox("enter le n° de semaine:") ' boite de dialogue entrer n° semaine
Set semtrouve = ActiveSheet.Range("A3:DRR3").Cells.Find(what:=semcherche, LookIn:=xlValues) ' cherche n° semaine sur plage A3 a drr3
' test si var correct
If semcherche = vbNullString Then
End
ElseIf semcherche < 1 Or semcherche > 53 Then
End
Else
semtrouve.Select ' OK
End If
Selection.Copy 'copie n° semaine et colle dans feuille_heure.xlsm en b3
Windows("feuille_heure.xlsm").Activate
c_f = c_f + 2
l_f = l_f + 3
Cells(l_f, c_f).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Workbooks("planning.xlsm").Activate ' selection vendredi semaine active
ActiveCell.Select
ActiveCell.Offset(1, 0).Range("A1").Select
Selection.Copy
Workbooks("feuille_heure.xlsm").Activate 'copie date lundi semaine et colle dans feuille_heure.xlsm en c3
c_f = 3
l_f = 3
Cells(l_f, c_f).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
'active et copie bon de commande
Workbooks("Bon.xlsm").Worksheets("bon.xlsm").Activate 'active feuille heure par défaut,copie et renome en new
Worksheets("bon").Select
Worksheets("bon").Copy Before:=Worksheets(1)
ActiveSheet.name = "new"
Workbooks("planning.xlsm").Activate
l_of = 2
c_of = 7
l_p = 7
c_p = 1
l_f = 0
c_f = 0
l_pv = 4
If MsgBox("commencer le processus de création des feuilles d'heure pour le semaine " & semtrouve & " et les bon de commandes ?", vbYesNo) = vbYes Then
Cells(l_p, c_p).Select
Else
End
End If
'début boucle pour ouvrier
Do Until (Cells(l_p, c_p).Value = Empty) 'des que valeur = null alors stop boucle"
Cells(l_p, c_p).Select
ActiveCell.Copy 'active cellule premier nom
name = ActiveCell.Value
Workbooks("feuille_heure.xlsm").Activate
Worksheets("fe").Select 'active feuille heure par défaut,copie et renome en new
Worksheets("fe").Copy Before:=Worksheets(1)
ActiveSheet.name = "new"
Cells(l_of, c_of).Select 'selection cellule précise et colle nom ouvrier
Worksheets("new").Cells(l_of, c_of).Value = Workbooks("planning.xlsm").Worksheets("planning").Cells(l_p, c_p).Value
Workbooks("planning.xlsm").Worksheets("planning").Activate
Set semtrouve = ActiveSheet.Range("A3:DRR3").Cells.Find(what:=semcherche) ' cherche n° semaine sur plage A3 a drr
semtrouve.Select 'selectionne variable cellule
ActiveCell.Offset(l_pv, 0).Select 'retour en arrière pour vendredi
'boucle de vendredi à jeudi 1col
'vars
l_f = 10
c_f = 1
Do Until (l_f = 42) ' condition
' correction d'entrée sur feuille_heure
If l_f = 14 Or l_f = 21 Or l_f = 28 Or l_f = 35 Or l_f = 42 Then
l_f = l_f + 3
ElseIf l_f = 46 Then
Exit Do
End If
c_f = 1
Workbooks("planning.xlsm").Worksheets("planning").Activate
devcherche = ActiveCell.Offset(0, 0).Range("A1").Value ' prend valeur cellule dans var
' MsgBox devcherche
Workbooks("planning.xlsm").Worksheets("chantier").Activate
Set devtrouve = ActiveSheet.Range("A1:A300").Cells.Find(what:=devcherche) ' cherche n° devis sur plage A1 a a300
'valeur var devis
devtrouve.Select
' valeur var chantier
ActiveCell.Offset(0, 1).Select
chantier = ActiveCell.Offset(0, 0).Value
' MsgBox chantier
' valeur var lieu
ActiveCell.Offset(0, 1).Select
lieu = ActiveCell.Offset(0, 0).Value
' MsgBox lieu
' valeur var architecte
ActiveCell.Offset(0, 1).Select
architecte = ActiveCell.Offset(0, 0).Value
' MsgBox architecte
' insertion vars dans feuille_heure ("new")
Workbooks("feuille_heure.xlsm").Worksheets("new").Cells(l_f, c_f).Value = devtrouve
c_f = c_f + 1
Workbooks("feuille_heure.xlsm").Worksheets("new").Cells(l_f, c_f).Value = chantier
c_f = c_f + 4
Workbooks("feuille_heure.xlsm").Worksheets("new").Cells(l_f, c_f).Value = lieu
c_f = c_f + 1
Workbooks("feuille_heure.xlsm").Worksheets("new").Cells(l_f, c_f).Value = architecte
'insertion vars planning
Workbooks("planning.xlsm").Worksheets("planning").Select
ActiveCell.Offset(0, 1).Select
ActiveCell.Offset(0, 0).Value = chantier
ActiveCell.Offset(0, 1).Select
ActiveCell.Offset(0, 0).Value = lieu
ActiveCell.Offset(0, 1).Select
' si il y un devis, alors il fait un bon de commande sinon suivant
'debut devis
If devtrouve = Empty Then ' if
Else
Workbooks("Bon.xlsm").Worksheets("new").Activate
l_b = 8
c_b = 2
Cells(l_b, c_b).Value = name ' ajout nom ouvrier dans le bon de commandes
Randomize ' Initialise le générateur de nombres aléatoires.
' Renvoie une valeur aléatoire comprise entre 1 et 6.
random = Int((100000 * Rnd) + 1)
c_b = 6
Cells(l_b, c_b).Value = (semcherche & "." & random) ' id
Workbooks("planning.xlsm").Worksheets("id_bon").Activate
c_id = 1
' search la dernière ligne non vide
Range("A1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Value = name
ActiveCell.Offset(1, 1).Value = (semcherche & "." & random)
Workbooks("Bon.xlsm").Worksheets("new").Activate
' info chantier
c_b = 2
l_b = 12
Cells(l_b, c_b).Value = devtrouve
c_b = c_b + 2
Cells(l_b, c_b).Value = chantier
c_b = c_b + 2
Cells(l_b, c_b).Value = lieu
Workbooks("Bon.xlsm").Worksheets("new").name = (name & " " & devtrouve & " " & nbrbon) 'renomme feuille new avec nom ouvrier
nbrbon = nbrbon + 1
'recrer f new
Worksheets("bon").Select
Worksheets("bon").Copy Before:=Worksheets(1)
ActiveSheet.name = "new"
End If ' fin du bon
l_f = l_f + 1 ' incrementation
Loop 'fin boucle
' verification des beugs avec la feuille new
fin = ("new")
Workbooks("feuille_heure.xlsm").Worksheets("new").name = Workbooks("planning.xlsm").Worksheets("Planning").Cells(l_p, c_p).Value 'renomme feuille new avec nom ouvrier
If Workbooks("feuille_heure.xlsm").Worksheets(1).name = fin Then
End
End If
Workbooks("planning.xlsm").Worksheets("planning").Activate
l_pv = l_pv + 1 ' incrémentation ligne + 1 pour semaine
l_p = l_p + 1 ' incrémentation ligne + 1 pour ouvrier
Loop 'fin boucle
'sauvegarde dans ( C:\....sauvegarde avec la variable semcherche ( n° de semaine active)
Workbooks("feuille_heure.xlsm").Activate
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="N:\Administration\sauvegarde\" & semcherche, FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
MsgBox ("remplissage des feuilles d'heures OK, prêt pour imprimer")
Workbooks("bon.xlsm").SaveAs Filename:="N:\Administration\bon_ouvrier\" & "bon_ouvrier" & semtrouve, FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
MsgBox ("bon de commandes OK, prêt pour imprimer")
End Sub
Sub chantier_en_cours_copie()
' copie de chantier dans le commun
Application.DisplayAlerts = False
ChDir "\\SERVEUR01\Production"
Workbooks.Open Filename:="\\SERVEUR01\production\chantiers_en_cours.xlsm"
Workbooks("planning.xlsm").Worksheets("chantier").Activate
ActiveSheet.Select
Sheets("chantier").Copy Before:=Workbooks("chantiers_en_cours.xlsm").Sheets(1)
Sheets(2).Delete
Workbooks("chantiers_en_cours.xlsm").Save
MsgBox ("une copie des chantiers en cours à été effectuer dans : chantiers_en_cours.xlsm")
End Sub
Sub feuille_heures_plein()
' variables pour feuille_heure
Dim l_f As Integer
l_f = 0
Dim c_f As Integer
c_f = 0
' variables pour nom ouvrier
Dim l_of As Integer
l_of = 0
Dim c_of As Integer
c_of = 0
' var heure
Dim l_h As Integer
Dim c_h As Integer
Dim heure As Variant
Dim heure_chantier As Variant
' var cvs
Dim c As String
Dim v As String
Dim s As String
'variables pour chantier
Dim chantier As String
Dim lieu As String
Dim architecte As String
'variable cherche devis ds f. chantier
Dim devcherche As String
Dim devtrouve As Range
Dim semaine As String
Dim ouvrier As String
Dim sheet As Integer
sheet = 1
' début du programme
semaine = InputBox("entre le nom du document ( exemple 44.xlsm")
If semaine = vbNullString Then
End
Else
Workbooks(semaine).Worksheets(sheet).Activate ' active feuille heure
End If
'var départ
l_of = 2
c_of = 7
l_f = 10
' premier boucle feuille avec nom des ouvriers
Do While Cells(l_of, c_of) <> Empty 'condition
ouvrier = Cells(l_of, c_of).Value
l_f = 10
Do Until (l_f = 44) ' condition
c_f = 1
' correction d'entrée sur feuille_heure
If l_f = 15 Or l_f = 22 Or l_f = 29 Or l_f = 36 Then
l_f = l_f + 2
ElseIf l_f = 44 Then
Exit Do
End If
Workbooks(semaine).Worksheets(ouvrier).Activate
devcherche = Cells(l_f, c_f).Value ' prend valeur cellule dans var
' MsgBox devcherche
Workbooks("planning.xlsm").Worksheets("chantier").Activate
Set devtrouve = ActiveSheet.Range("A1:A300").Cells.Find(what:=devcherche) ' cherche n° devis sur plage A1 a a300
'valeur var devis
devtrouve.Select
' valeur var chantier
ActiveCell.Offset(0, 1).Select
chantier = ActiveCell.Offset(0, 0).Value
' MsgBox chantier
' valeur var lieu
ActiveCell.Offset(0, 1).Select
lieu = ActiveCell.Offset(0, 0).Value
' MsgBox lieu
' valeur var architecte
ActiveCell.Offset(0, 1).Select
architecte = ActiveCell.Offset(0, 0).Value
' MsgBox architecte
' insertion vars dans feuille_heure ("new")
Workbooks(semaine).Worksheets(ouvrier).Cells(l_f, c_f).Value = devtrouve
c_f = c_f + 1
Workbooks(semaine).Worksheets(ouvrier).Cells(l_f, c_f).Value = chantier
c_f = c_f + 4
Workbooks(semaine).Worksheets(ouvrier).Cells(l_f, c_f).Value = lieu
c_f = c_f + 1
Workbooks(semaine).Worksheets(ouvrier).Cells(l_f, c_f).Value = architecte
c_f = c_f + 1
Workbooks(semaine).Worksheets(ouvrier).Activate
' colone heure
c_h = 11
l_h = l_f
'heure -> var
heure = Cells(l_h, c_h).Value
If (Cells(l_f, c_f) = "c") Then
Workbooks("planning.xlsm").Worksheets("chantier").Activate
ActiveCell.Offset(0, 1).Select
heure_chantier = ActiveCell.Offset(0, 0).Value
heure_chantier = heure_chantier + heure
ActiveCell.Offset(0, 0).Value = heure_chantier
End If
c_f = c_f + 1
If (Cells(l_f, c_f) = "v") Then
Workbooks("planning.xlsm").Worksheets("chantier").Activate
ActiveCell.Offset(0, 2).Select
heure_chantier = ActiveCell.Offset(0, 0).Value
heure_chantier = heure_chantier + heure
ActiveCell.Offset(0, 0).Value = heure_chantier
End If
c_f = c_f + 1
If (Cells(l_f, c_f) = "s") Then
Workbooks("planning.xlsm").Worksheets("chantier").Activate
ActiveCell.Offset(0, 3).Select
heure_chantier = ActiveCell.Offset(0, 0).Value
heure_chantier = heure_chantier + heure
ActiveCell.Offset(0, 0).Value = heure_chantier
End If
Workbooks(semaine).Worksheets(ouvrier).Activate
l_f = l_f + 1 ' incr
l_h = l_h + 1 'incr
Loop
sheet = sheet + 1
Workbooks(semaine).Worksheets(sheet).Activate
Loop
MsgBox ("fin pour la semaine " & semtrouve)
'sauvegarde dans ( C:\....sauvegarde avec la variable semcherche ( n° de semaine active)
End Sub
Sub bon()
End Sub