Erreur d’exécution '6'
DEVPLUS
-
DEVPLUS -
DEVPLUS -
Bonjour,
J'ai un Userform U25 Qui contient
-TextBox1
-TextBox2
-ListView1
Je souhaites ajouter des items par le U25 à la feuille excel BDT, ci dessous ce que j'ai écrit mais j'ai comme code d'erreur '6' Dépassement de capacité.
J'ai un Userform U25 Qui contient
-TextBox1
-TextBox2
-ListView1
Je souhaites ajouter des items par le U25 à la feuille excel BDT, ci dessous ce que j'ai écrit mais j'ai comme code d'erreur '6' Dépassement de capacité.
Private Sub BtNouveau_Click()
TextBox1.Enabled = True
TextBox2.Enabled = True
TextBox1.SetFocus
End Sub
Private Sub BtValider_Click()
Dim i As Integer
For i = 1 To Range("a:a").End(xlDown).Row
ActiveCell.End(xlDown).Select
If UCase(TextBox1.Text) = UCase(Cells(i, 1).Text) And TextBox2 = "" Then
MsgBox "Ce Code est Déja Attribué":
TextBox1 = ""
TextBox2 = ""
Exit Sub
Else
If UCase(TextBox1.Text) = UCase(Cells(i, 1).Text) And TextBox2 <> "" Then
Sheets("BDT").Cells(i, 1).Value = Me.TextBox1.Value
Sheets("BDT").Cells(i, 2).Value = Me.TextBox2.Value
MsgBox "Modification Effectué":
TextBox1 = ""
TextBox2 = ""
Exit Sub
End If
End If
Next i
i = 1
Do While Cells(i, 1) <> ""
Cells(i, 1).Offset(1, 1).Select
i = i + 1
Loop
Sheets("BDT").Cells(i, 1).Value = Me.TextBox1.Value
Sheets("BDT").Cells(i, 2).Value = Me.TextBox2.Value
If MsgBox("Confirmez-Vous l'ajout de cet Aricle?", vbYesNo, "Confirmation") = vbYes Then
End If
TextBox1 = ""
TextBox2 = ""
End Sub
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :ICIMerci d'y penser dans tes prochains messages.Jordane45 |
A voir également:
- Erreur d’exécution '6'
- Nero 6 - Télécharger - Gravure
- Dans la table des matières du document à télécharger, le chapitre 6 et ses 2 sections n'apparaissent pas. trouvez l'erreur dans la structure du document et corrigez-la. mettez à jour la table des matières. quel est le mot formé par les lettres en majuscules de la table des matières après sa mise à jour ? - Forum Word
- Gta 6 trailer 2 - Guide
- 6 ampere = watt ✓ - Forum Matériel & Système
- Combien de watt y a t-il dans une ampere? - Forum Logiciels
3 réponses
Bonjour,
Pour commencer.. au lieu de chercher une cellule via une boucle de plusieurs milliers de lignes... il serait préférable d'utiliser la méthode FIND
https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel
Pour commencer.. au lieu de chercher une cellule via une boucle de plusieurs milliers de lignes... il serait préférable d'utiliser la méthode FIND
https://forums.commentcamarche.net/forum/affich-37621992-methode-find-dans-vba-recherche-de-donnees-sous-excel
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonsoir, sur quelle ligne as-tu l'erreur?
suggestion:
suggestion:
Dim i As Long
Bonjour,
Avec Dim i As Integer
l'erreur est sur la ligne:
For i = 1 To Range("a:a").End(xlDown).Row
pour votre suggestion je l'ai déjà essayer le problème est résolu mais il faut attendre 3 minutes pour avoir le message "Confirmez-Vous l'ajout de cet Article?",
Ce que je n'arrive pas à comprendre avec le même code sur une autre base de donnée
et sur le même classeur, ça marche très bien, d'ailleurs j'ai copié et coller le code.
Avec Dim i As Integer
l'erreur est sur la ligne:
For i = 1 To Range("a:a").End(xlDown).Row
pour votre suggestion je l'ai déjà essayer le problème est résolu mais il faut attendre 3 minutes pour avoir le message "Confirmez-Vous l'ajout de cet Article?",
Ce que je n'arrive pas à comprendre avec le même code sur une autre base de donnée
et sur le même classeur, ça marche très bien, d'ailleurs j'ai copié et coller le code.
Re bonjour,
Avec le code suivant, je pense que tu n'auras plus de soucis.
Je l'ai découpé en sub et fonctions histoire de le rendre plus lisible et plus propre...
Cordialement,
Jordane
Avec le code suivant, je pense que tu n'auras plus de soucis.
Je l'ai découpé en sub et fonctions histoire de le rendre plus lisible et plus propre...
Private Sub BtValider_Click()
Dim ligne As Long
Dim valCh As String
Dim sh As Worksheet
Dim valExist As Long
Set sh = Worksheets("BDT")
valCh = Me.TextBox1.Value
valExist = chercheVal(sh, valCh)
If valExist Then
If TextBox2.Value = "" Then
MsgBox "Ce Code est Déja Attribué":
Me.TextBox1 = ""
Me.TextBox2 = ""
ElseIf TextBox2.Value <> "" Then
Call modifier(sh, valExist)
End If
Else
Call ajouter(sh)
End If
End Sub
Function chercheVal(sh As Worksheet, Valeur_Cherchee As String)
Dim Trouve As Range
Dim PlageDeRecherche As Range
'On cherche dans la première colonne de la feuille sh
Set PlageDeRecherche = sh.Columns(1)
'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)
Set Trouve = PlageDeRecherche.Cells.Find(what:=Valeur_Cherchee, LookAt:=xlWhole)
'traitement de l'erreur possible : Si on ne trouve rien :
If Trouve Is Nothing Then
'ici, traitement pour le cas où la valeur n'est pas trouvée
chercheVal = False
Else
'ici, traitement pour le cas où la valeur est trouvée
chercheVal = Trouve.Row 'retourne la ligne concernée
End If
End Function
Sub ajouter(sh As Worksheet)
Dim LastRow As Long
LastRow = Derniere_Ligne(sh)
If MsgBox("Confirmez-Vous l'ajout de cet Aricle?", vbYesNo, "Confirmation") = vbYes Then
sh.Cells(LastRow + 1, 1).Value = Me.TextBox1.Value
sh.Cells(LastRow + 1, 2).Value = Me.TextBox2.Value
End If
End Sub
Sub modifier(sh As Worksheet, ligne As Long)
sh.Cells(ligne, 1).Value = Me.TextBox1.Value
sh.Cells(ligne, 2).Value = Me.TextBox2.Value
MsgBox "Modification Effectuée"
End Sub
Function Derniere_Ligne(sh As Worksheet) As Long '
Derniere_Ligne = sh.Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row
End Function
Cordialement,
Jordane
Je veux remplir une base de donnée par un formulaire "U25"
- quand je tape le code,
1- textbox2="" cela veux dire NOUVEAU
il ya une recherche si le code existe dans la base de donnée "oui ou non".
si c'est oui il m'affiche un message que le code existe déja, si c'est non il me demande si je veux ajouter cet article, si c'est oui il va remplir les cellule de la base de donnée.
2-TEXTBOX2<>"" cela veux MODIFIER
apres modification effectuée sur U25
VALIDER
MESSAGE voulez vous confirmer la modification, si c'est oui elle est reporter sur la base de donnée BDT.