VBA et End(xlDown).Row

xerios123

XLDnaute Nouveau
bonjour

Je fais un logiciel permettant de gerer une liste de matériel

Je peu en rajouter et en supprimer
Lorsque je supprime une ligne dans un tableau, elle se retrouve donc vide, puis lorsque je rajoute un outil elle vient remplacer la ligne vide.

Cependant parfois... cela ne fonctionne pas et se met sur une ligne vide suivante?

Voici ma procédure

Sub enregistrerprev(g1 As String, g2 As String, g3 As String, g4 As Date, g5 As String, g6 As String, g7 As String, g8 As String, g9 As Date, g10 As String, g11 As String, g12 As String, g13 As String, g14 As Date, g15 As String, g16 As String, g17 As String, g18 As String, g19 As Date, g20 As String, g21 As String, g22 As String, g23 As String, g24 As Date, g25 As String, g26 As String, g27 As String, g28 As String, g29 As Date, g30 As String)

Worksheets(3).Activate

Ligne = Worksheets(3).Range("a1").End(xlDown).Row
If Not Ligne = 1 Then Ligne = Ligne + 1



Cells(Ligne, 1).Value = 1

Cells(Ligne, 9).Value = compteura

Cells(Ligne, 10).Value = g1
Cells(Ligne, 11).Value = g2
Cells(Ligne, 12).Value = g3
Cells(Ligne, 13).Value = g4
Cells(Ligne, 14).Value = g5
Cells(Ligne, 15).Value = g6
Cells(Ligne, 16).Value = g7
Cells(Ligne, 17).Value = g8
Cells(Ligne, 18).Value = g9
Cells(Ligne, 19).Value = g10
Cells(Ligne, 20).Value = g11
Cells(Ligne, 21).Value = g12
Cells(Ligne, 22).Value = g13
Cells(Ligne, 23).Value = g14
Cells(Ligne, 24).Value = g15
Cells(Ligne, 25).Value = g16
Cells(Ligne, 26).Value = g17
Cells(Ligne, 27).Value = g18
Cells(Ligne, 28).Value = g19
Cells(Ligne, 29).Value = g20
Cells(Ligne, 30).Value = g21
Cells(Ligne, 31).Value = g22
Cells(Ligne, 32).Value = g23
Cells(Ligne, 33).Value = g24
Cells(Ligne, 34).Value = g25
Cells(Ligne, 35).Value = g26
Cells(Ligne, 36).Value = g27
Cells(Ligne, 37).Value = g28
Cells(Ligne, 38).Value = g29
Cells(Ligne, 39).Value = g30

Worksheets(1).Activate

End Sub
 

Papou-net

XLDnaute Barbatruc
Re : VBA et End(xlDown).Row

Bonjour efgé,

Bonjour à tous, juste pour dire que

Code:
[FONT=monospace]Ligne = Worksheets(3).Range([COLOR=#800000]"A1"[/COLOR]).[COLOR=#0000FC]End[/COLOR](xlDown).Row[/FONT]
ne renverra jamais 1

C'est exact, c'est :

Code:
Ligne = Worksheets(3).Range([COLOR=#800000]"A65536"[/COLOR]).[COLOR=#0000FC]End[/COLOR](xlUp).Row
qui renverra 1 si A1 est vide.

Mea culpa.

Cordialement.
 

xerios123

XLDnaute Nouveau
Re : VBA et End(xlDown).Row

J'ai fais 2 screens pour mieu expliquer mon problème

Photo 1 :
l'avant dernière ligne correspond à ma ligne qui a été effacé, elle doit etre remplacé par la nouvelle

Je fait ma nouvelle ligne, ma première procédure ecrit mes valeurs à la bonne place, la 2eme procédure ne met pas les valeurs à la bonne place mais à la ligne en dessous
voir photo 2 !
essai1.jpg
essai2.jpg
 

Pièces jointes

  • essai1.jpg
    essai1.jpg
    121.2 KB · Affichages: 85
  • essai1.jpg
    essai1.jpg
    121.2 KB · Affichages: 88
  • essai2.jpg
    essai2.jpg
    122.1 KB · Affichages: 92
  • essai2.jpg
    essai2.jpg
    122.1 KB · Affichages: 97

Efgé

XLDnaute Barbatruc
Re : VBA et End(xlDown).Row

Re, @ xerios123, Au début de chaque procédure qui écrit tes données ajoute cette ligne :
VB:
Application.Worksheets(3).UsedRange 'réinitialise le usedrange de la feuille
avec le numéro de la feuille où tu écris. Cordialement
 

xerios123

XLDnaute Nouveau
Re : VBA et End(xlDown).Row

efgé, je viens de rajouter ta ligne :
Application.Worksheets(3).UsedRange 'réinitialise le usedrange de la feuille
Mais c'est toujours décallé, je crois que sa va viens de mon code qui remplace les cellules par ""
On ma dit de mettre clearcontents et sa a lair de marcher pour l'instant....
 

Discussions similaires

Réponses
26
Affichages
1 K
  • Résolu(e)
Microsoft 365 Autorisation
Réponses
2
Affichages
770
Réponses
0
Affichages
1 K

Statistiques des forums

Discussions
312 752
Messages
2 091 658
Membres
105 036
dernier inscrit
Jeromelemaire