Erreur 6 [Résolu]

Signaler
-
 kozusnik -
Bonjour,
je vien d'ecrire un code vba.losque je lance son execution un msg d'erreur 6 s'affiche
voici le code

Private Sub CommandButton2_Click()

'saisir les données dans la base SitTax'

Dim ligne As Integer
ligne = Sheets("SitTax").[a18].End(xlDown).Row + 1

Sheets("SitTax").Range("a" & ligne) = TextBox_date
Sheets("SitTax").Range("b" & ligne) = ComboBox_exploitant
Sheets("SitTax").Range("c" & ligne) = ComboBox_Provenance
Sheets("SitTax").Range("d" & ligne) = ComboBox_AC
Sheets("SitTax").Range("e" & ligne) = ComboBox_deb
Sheets("SitTax").Range("f" & ligne) = ComboBox_numvol
Sheets("SitTax").Range("g" & ligne) = ComboBox_immatriculation
Sheets("SitTax").Range("h" & ligne) = TextBox_totalpax
Sheets("SitTax").Range("i" & ligne) = TextBox_transit
Sheets("SitTax").Range("j" & ligne) = TextBox_bébé
Sheets("SitTax").Range("k" & ligne) = TextBox_paxintern
Sheets("SitTax").Range("l" & ligne) = TextBox_paxnational


MsgBox ligne

Unload Me
Factures.Show
End Sub



et lorsque je lance le debogage c'est cette ligne qui est surligné:
ligne = Sheets("SitTax").[a18].End(xlDown).Row + 1

svp veuillez m'aider à depasser l'erreur

1 réponse

Messages postés
498
Date d'inscription
jeudi 18 juillet 2019
Statut
Membre
Dernière intervention
22 septembre 2020
23
Bonjour,

Regarde un peu plus le libellé de l'erreur 6, C'est un dépassement de capacité.
Tu as défini ligne comme un integer qui est limité à 32767, et là probablement tu vas beaucoup plus loin, peut-être même à la fin de la colonne (1 048 576).
Déclare ligne comme Long, ou vérifie que ta colonne A n'est pas vide

Cordialement
Bonsoir,
effectivement c'est un dépassement de capacité. la colonne A est vide à partir de la ligne 19. c'est à partir de la ligne 19 que notre remplissage du tableau va commencer.
merci de m’éclaircir davantage
Messages postés
498
Date d'inscription
jeudi 18 juillet 2019
Statut
Membre
Dernière intervention
22 septembre 2020
23
Bonjour,

Ton code ne fonctionne que si ton tableau n'est pas vide !
Alors deux choses,
a) déclare la variable ligne comme Long et non pas Integer
b) au lieu de rechercher la première ligne vide en descendant à partir du haut de ton tableau et bien recherche là en remontant à partir de la fin de la dernière ligne de la colonne A
Essaie avec ce code
Dim ligne As Long
ligne = Sheets("SitTax").Range("A" & Rows.Count).End(xlUp).Row + 1


Cordialement
Bonjour,
MERCI INFINIMENT.
le code fonctionne.
Si vous êtes d'accord, je souhaiterai rester en contact avec vous car je suis novice dans le domaine.
encore MERCI.