Un petit problème de variable

bonsoir voir vue l'heure exelente nuit !

dans mon classeur a l'aide du bouton enregistrer present dans ma feuille facture je veux enregistrer les elements de ma page dans la base correspondant a l'entête (facture, devis ou commande) j'utilise donc le code suivant !

Sub enregistrer()

Dim xnumero As Integer

Fac_Dev = Cells(1, 9)

Xonglet = Cells(1, 17)

Dim Arr(), RefL$

If Cells(41, 10) = 0 Then Exit Sub 'total

If Cells(45, 4) = "" Then 'reglement

Else

MsgBox ("saisisé le mode de reglement")

End If

Application.ScreenUpdating = False

reponse = MsgBox("Voulez-vous enregistrer :" & Fac_Dev & " ?", vbYesNo)

If reponse = vbYes Then

ActiveSheet.PageSetup.PrintArea = "$A$1:J53"

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

End If

With Sheets(Xonglet)

x = .Range("A65536").End(xlUp).Row

xnumero = Right(.Cells(x, 1), 5)

End With

NFacture = Right(Cells(1, 10), 5) - 1

If NFacture = xnumero Then

With Sheets(Xonglet)

i = .Range("A65536").End(3)(2).Row

.Cells(i, 1) = Sheets("facture").Range("J1") ' Numéro Devis ou Facture ou commande

.Cells(i, 2) = Range("nom")

.Cells(i, 3) = Range("prenom")

.Cells(i, 4) = Range("adresse")

.Cells(i, 5) = Range("code_postal")

.Cells(i, 6) = Range("ville")

.Cells(i, 7) = Range("date")

.Cells(i, 8) = Range("client")

For x = 1 To 26

RefL = "Lig_" & x

Arr() = Range(RefL)

For k = 1 To 4

.Cells(i, 3 + k + 4 * x) = Arr(1, k)

Next

Next

.Cells(i, 113) = Range("total")

.Cells(i, 114) = Range("acompte")

.Cells(i, 115) = Range("net_a_payer")

.Cells(i, 116) = Range("reglement")

.Cells(i, 117) = Range("mail")

.Cells(i, 118) = Range("telephone")

End With

Range("B15:I40").Select

Selection.ClearContents

Range("Q8").Select

Selection.ClearContents

Range("R8").Select

Selection.ClearContents

Range("J43").Select

Selection.ClearContents

Range("D45").Select

Selection.ClearContents

Range("R1").Select

Selection.ClearContents

Range("J1").Select

Selection.ClearContents

End If

Unload Me

Sheets("facture").Select

End Sub

le problème est une erreur avec le message suivant Fac_Dev non déclaré et pourtant ma variable Fac_Dev est bien en I1 de ma facture que j'ai donc reporter com Cells (1, 9)

la je seche

merci d'avance cedcyr

Salut le forum

Lorsque Option Explicit apparaît dans un fichier, vous devez déclarer explicitement toutes les variables

à l'aide des instructions Dim ou ReDim. Si vous tentez d'utiliser un nom de variable non déclarée,

une erreur se produit au moment de la compilation.

Mytå

effectivement une grosse erreur du débutant que je suis je continue a pofinner car il bloque encore une ligne sinon apres correction ca donne ca :

Option Explicit
Dim x As Long, Fac_Dev As String, Fac_Num As String, i As Long, k, n, NFacture As Long
Dim Xonglet, Xcel, u, numero  As String, reponse As String

puis :

Sub enregistrer()
Dim xnumero As Integer
Fac_Dev = Cells(1, 9)
Fac_Num = Cells(1, 10)
Xonglet = Cells(1, 17)
Dim Arr(), RefL$
If Cells(41, 10) = 0 Then Exit Sub  'total
If Cells(45, 3) = "" Then  'reglement
    Else
        MsgBox ("saisisé le mode de reglement")
         If Cells(45, 3) = "" Then Exit Sub
    End If
Application.ScreenUpdating = False
reponse = MsgBox("Voulez-vous enregistrer :" & Fac_Dev & Fac_Num & " ?", vbYesNo)
        If reponse = vbYes Then
    ActiveSheet.PageSetup.PrintArea = "$A$1:J53"

        End If

With Sheets(Xonglet)
    x = .Range("A65536").End(xlUp).Row
    xnumero = Right(.Cells(x, 1), 5)
End With
NFacture = Right(Cells(1, 10), 5) - 1

If NFacture = xnumero Then
    With Sheets(Xonglet)

        i = .Range("A65536").End(3)(2).Row
        .Cells(i, 1) = Sheets("facture").Range("J1") ' Numéro Devis ou Facture ou commande
        .Cells(i, 2) = Range("nom")
        .Cells(i, 3) = Range("prenom")
        .Cells(i, 4) = Range("adresse")
        .Cells(i, 5) = Range("code_postal")
        .Cells(i, 6) = Range("ville")
        .Cells(i, 7) = Range("date")
        .Cells(i, 8) = Range("client")
            For x = 1 To 26
                RefL = "ligne_" & x
                Arr() = Range(RefL)
                    For k = 1 To 4
                        .Cells(i, 3 + k + 4 * x) = Arr(1, k)
                    Next
            Next
        .Cells(i, 113) = Range("total")
        .Cells(i, 114) = Range("acompte")
        .Cells(i, 115) = Range("net_a_payer")
        .Cells(i, 116) = Range("reglement")
        .Cells(i, 117) = Range("mail")
        .Cells(i, 118) = Range("telephone")
    End With
    Range("B15:I40").ClearContents
    Range("Q8").ClearContents
    Range("R8").ClearContents
    Range("J43").ClearContents
    Range("D45").ClearContents
    Range("R1").ClearContents
    Range("J1").ClearContents
 End If
Application.ScreenUpdating = True
Sheets("facture").Select
End Sub

mon code mets une erreur a Arr() = Range(RefL) , les cells de 1 a 8 sont bien enregistrer mais pas le reste quel betise j'ai fait la je ne vois pas ! merci de me tirer les oreilles car c'est sur il y en a une .

cedcyr

Rechercher des sujets similaires à "petit probleme variable"