Erreur 6

Résolu/Fermé
kozusnik - 7 déc. 2019 à 21:12
 kozusnik - 8 déc. 2019 à 13:46
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

ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024 139
7 déc. 2019 à 21:24
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
1
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
0
ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024 139
Modifié le 8 déc. 2019 à 10:52
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
0
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.
0