Supprimer un message
Raison de suppression du message (envoyée à l'utilisateur)

Voulez vous réellement supprimer ce message?  


fireware
Non non, ça marche aussi bien sur son pc que sur le mien, mais là je viens de l'installer sur un autre disque dur presque identique que le mien (où ça marche). Et là ça me met des erreurs. Voici le code :


Private Sub CommandButton1_Click()
Dim repbase, utilisateur, fichbase, annee, mois, nomfichouvert
Dim fr, l, w, e

fichbase = ActiveWorkbook.FullName
Set fr = CreateObject("Scripting.FileSystemObject")
Set l = fr.GetFile(fichbase)
repbase = l.ParentFolder.Path

On Error GoTo fin2
utilisateur = ListBox2.Text
annee = ComboBox1.Value
mois = ListBox1.Text

For Each w In Application.Workbooks
nomfichouvert = w.Name

If nomfichouvert = utilisateur & annee & ".xls" Then
MsgBox "Le fichier que vous voulez ouvrir est déjà ouvert, la commande est abandonnée"
GoTo fin3
End If
Next w

Set fr = CreateObject("Scripting.FileSystemObject")
e = fr.FileExists(repbase & "\annees\" & utilisateur & annee & ".xls")

If e = True Then
Workbooks.Open repbase & "\annees\" & utilisateur & annee & ".xls"

If mois = "" Then
GoTo suite
Else
Worksheets(mois).Activate
End If

suite:
Else
MsgBox "Désolé, fichier introuvable. Peut être que le nom du compte ou du livret vient d'être créé et n'a donc pas d'année archivée!"
GoTo fin
End If

fin3:
Unload UserForm1
Unload UserForm5
GoTo fin

fin2:
ComboBox1.Text = ""
MsgBox "Vous devez entrer une année valide"

fin:
End Sub

Private Sub CommandButton2_Click()
Dim repbase, utilisateur, fichbase, annee
Dim fr, l, e

fichbase = ActiveWorkbook.FullName
Set fr = CreateObject("Scripting.FileSystemObject")
Set l = fr.GetFile(fichbase)
repbase = l.ParentFolder.Path
utilisateur = ListBox2.Text
annee = Year(DateTime.Date)

Set fr = CreateObject("Scripting.FileSystemObject")
e = fr.FileExists(repbase & "\annees\" & utilisateur & annee & ".xls")

If e = True Then
Workbooks.Open repbase & "\annees\" & utilisateur & annee & ".xls"
Unload UserForm1
Unload UserForm5
Else
MsgBox "Désolé, l'année " & Year(DateTime.Date) & " du compte (ou du livret): " & utilisateur & " n'existe pas!"
End If
End Sub

Private Sub ListBox2_Change()
Dim x, y, compte, livret, compteoulivret

x = 2
y = 2
compte = "b" & x
livret = "e" & y
compteoulivret = "?"
While Worksheets("Comptes et livrets").Range(compte) <> ""
If Worksheets("Comptes et livrets").Range(compte) = ListBox2.Value Then compteoulivret = "Compte"
x = x + 1
compte = "b" & x
Wend
While Worksheets("Comptes et livrets").Range(livret) <> ""
If Worksheets("Comptes et livrets").Range(livret) = ListBox2.Value Then compteoulivret = "Livret"
y = y + 1
livret = "e" & y
Wend
If compteoulivret = "Compte" Then
CommandButton1.Caption = "Ouvrir Compte"
ListBox1.Enabled = True
ListBox1.Visible = True
Label2.Visible = True
ElseIf compteoulivret = "Livret" Then
CommandButton1.Caption = "Ouvrir Livret"
ListBox1.Enabled = False
ListBox1.Visible = False
Label2.Visible = False
End If
End Sub

Private Sub UserForm_Activate()
Dim annee
Dim w, x, y, compte, livret, memo

CommandButton2.Caption = "Ouvrir l'année " & Year(DateTime.Date)

annee = Year(DateTime.Date)
For w = 0 To 9
ComboBox1.AddItem (annee + 1 - w)
Next w

ComboBox1.Value = annee

ListBox1.AddItem ("Janvier")
ListBox1.AddItem ("Février")
ListBox1.AddItem ("Mars")
ListBox1.AddItem ("Avril")
ListBox1.AddItem ("Mai")
ListBox1.AddItem ("Juin")
ListBox1.AddItem ("Juillet")
ListBox1.AddItem ("Août")
ListBox1.AddItem ("Septembre")
ListBox1.AddItem ("Octobre")
ListBox1.AddItem ("Novembre")
ListBox1.AddItem ("Décembre")

x = 2
y = 2
memo = ""
compte = "b" & x
livret = "e" & y
While Worksheets("Comptes et livrets").Range(compte) <> ""
If compte = "b2" Then memo = Worksheets("Comptes et livrets").Range(compte)
ListBox2.AddItem Worksheets("Comptes et livrets").Range(compte)
x = x + 1
compte = "b" & x
Wend
While Worksheets("Comptes et livrets").Range(livret) <> ""
If memo = "" And livret = "e2" Then memo = Worksheets("Comptes et livrets").Range(livret)
ListBox2.AddItem Worksheets("Comptes et livrets").Range(livret)
y = y + 1
livret = "e" & y
Wend
If memo <> "" Then ListBox2.Value = memo
End Sub


Voici le texte surligner en jaune :

While Worksheets("Comptes et livrets").Range(livret) <> ""

Et le message d'erreur avant le débogage :

Erreur d'exécution '9' :

L'indice n'appartient pas à la selection.
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?