• Initiateur de la discussion Initiateur de la discussion kinel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

kinel

XLDnaute Occasionnel
bonjour à tous

je n'arrive pas à trouver l'erreur de ce code qui ouvre un useform afin d'ajouter une ligne d'éléments dans un tableau
le problème est que l'ajout se fait toujours à la ligne 26 au lieu de se faire en fin de tableau

merci de votre aide
kinel

voici le code:

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False

Dim derligne
Dim pos
Sheets("Liste").Select
derligne = Sheets(1).Range("A65536").End(xlUp).End(xlUp).Row + 1
If TextBox1.Value = "" Then
Label14.Visible = True
Exit Sub
End If
If TextBox2.Value = "" Then
Label14.Visible = True
Exit Sub
End If
If TextBox3.Value = "" Then
Label14.Visible = True
Exit Sub
End If
If TextBox4.Value = "" Then
Label14.Visible = True
Exit Sub
End If
If TextBox5.Value = "" Then
Label14.Visible = True
Exit Sub
End If
If TextBox6.Value = "" Then
Label14.Visible = True
Exit Sub
End If
Range("A" & derligne).Value = TextBox1.Value
Range("b" & derligne).Value = TextBox2.Value
Range("c" & derligne).Value = TextBox3.Value
Range("d" & derligne).Value = TextBox4.Value
Range("e" & derligne).Value = TextBox5.Value
Range("g" & derligne).Value = TextBox6.Value
Range("s" & derligne).Value = DTPicker1.Value

TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""
TextBox6.Value = ""
Label14.Visible = False


Application.ScreenUpdating = True
End Sub
 
Re : erreur ds code

bonjour,

l'erreur doit venir de cette ligne :
Code:
derligne = Sheets(1).Range("A65536").End(xlUp).End(xlUp).Row + 1
tu as deux fois ".end(xlup)"
essayes comme ceci
Code:
derligne = Sheets(1).Range("A65536").End(xlUp).Row + 1

De plus, ecrire Dim derligne définit une variable de type Variant, mieux vaut écrire Dim derligne As Integer
Enfin la variable pos ne sert à rien dans ton code

A+
 
Dernière édition:
Re : erreur ds code

merci ledzep

voici mon code modifié mais il place toujours les éléments à la ligne 26
j'ai aussi essayé de renvoyer vers une autre feuille au cas ou ma feuille de destination serait en cause mais niet

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False

Dim derligne As Integer
Sheets("gestprod").Select
derligne = Sheets(1).Range("A65536").End(xlUp).Row + 1
If TextBox1.Value = "" Then
Label14.Visible = True
Exit Sub
End If
If TextBox2.Value = "" Then
Label14.Visible = True
Exit Sub
End If
If TextBox3.Value = "" Then
Label14.Visible = True
Exit Sub
End If
If TextBox4.Value = "" Then
Label14.Visible = True
Exit Sub
End If
If TextBox5.Value = "" Then
Label14.Visible = True
Exit Sub
End If
If TextBox6.Value = "" Then
Label14.Visible = True
Exit Sub
End If
Range("A" & derligne).Value = TextBox1.Value
Range("b" & derligne).Value = TextBox2.Value
Range("c" & derligne).Value = TextBox3.Value
Range("d" & derligne).Value = TextBox4.Value
Range("e" & derligne).Value = TextBox5.Value
Range("g" & derligne).Value = TextBox6.Value
Range("s" & derligne).Value = DTPicker1.Value

TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""
TextBox6.Value = ""
Label14.Visible = False


Application.ScreenUpdating = True
End Sub
 
Re : erreur ds code

re...

si ta feuille de destination est "gestprod", définis derligne comme ceci

Code:
derligne = Sheets([COLOR="Red"]"gestprod"[/COLOR]).Range("A65536").End(xlUp).Row + 1
si ça se trouve l'index de ce feuillet n'est pas 1 donc il définit la dernière ligne en fonction de ce feuillet dont l'index est 1, sans fichier c'est pas facile à confirmer

De plus si ton feuillet de destination n'est pas le feuillet actif, à la place de
Code:
Range("A" & derligne).Value = TextBox1.Value
Range("b" & derligne).Value = TextBox2.Value
Range("c" & derligne).Value = TextBox3.Value
Range("d" & derligne).Value = TextBox4.Value
Range("e" & derligne).Value = TextBox5.Value
Range("g" & derligne).Value = TextBox6.Value
Range("s" & derligne).Value = DTPicker1.Value
mieux vaut écrire
Code:
With Sheets("nom du feuillet destination")
.cells(derligne,1)=TextBox1
.cells(derligne,2)=TextBox2
.cells(derligne,3)=TextBox3
.cells(derligne,4)=TextBox4
.cells(derligne,5)=TextBox5
.cells(derligne,7)=TextBox6
.cells(derligne,20)=DTPicker1
End With
a+
 
Dernière édition:
Re : erreur ds code

encore un petit soucis sur ce code

pour la cellule 5 et 7 (e et g)

lorsque je lance l'useform tout va bien seulement je perd le format nombre des cellules ce qui empêche les calculs automatique de la feuille

comment pourrais je faire pour garder ce format nombre qui est présent à l'origine sur ces cellules ?

merci de vos réponses

Kinel
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
298
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
532
Réponses
9
Affichages
205
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
664
Réponses
2
Affichages
162
Réponses
1
Affichages
187
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
184
Retour