Erreur 6

Résolu
kozusnik -  
 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

ALS35 Messages postés 1033 Date d'inscription   Statut Membre Dernière intervention   145
 
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
kozusnik
 
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   Statut Membre Dernière intervention   145
 
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
kozusnik
 
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