Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Saute de ligne

  • Initiateur de la discussion Initiateur de la discussion eila
  • 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 !

eila

XLDnaute Nouveau
Bonjour,
Je suis entrain de créer un fichier qui permet le calcul de TRS.
Le problème ce que lorsque j'essaye de enregistrer de nouveau l'info, ça s'enregistre mais les lignes d’avants se suppriment.
le fichier est en pj.
Merci 🙂
 

Pièces jointes

Bonsoir Eila,
Vous cherchez la première ligne vide de la feuille2 avec :
iRow = Sheets(2).Range("A1048576").End(xlUp).Row + 1
Par contre vous faites :
For i = 0 To DernLigne
mais je n'ai pas vu où vous initialisez DernLigne.
N'y aurait il pas une erreur sur DernLigne ?
 
Merci pour votre réponse 🙂

Le script est le suivant:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False

Dim iRow As Long
Dim s As Integer
Dim i As Integer
i = 0

iRow = Sheets(2).Range("A1048576").End(xlUp).Row + 1 + i


With ThisWorkbook.Sheets(2)

.Range("A" & iRow).Value = ComboBox1.Text
.Range("B" & iRow).Value = LDDate1.Date
.Range("C" & iRow).Value = ComboBox2.Text
.Range("D" & iRow).Value = TextBox2.Value
.Range("E" & iRow).Value = TextBox1.Value


If CheckBox1.Value = True Then
.Range("F" & iRow).Value = CheckBox1.Caption
.Range("G" & iRow).Value = TextBox3.Value
.Range("H" & iRow).Value = TextBox4.Value
.Range("I" & iRow).Value = TextBox5.Value
iRow = Sheets(2).Range("A1048576").End(xlUp).Row + 1
i = i + 1
End If

If CheckBox2.Value = True Then
.Range("F" & iRow).Value = CheckBox2.Caption
.Range("G" & iRow).Value = TextBox6.Value
.Range("H" & iRow).Value = TextBox7.Value
.Range("I" & iRow).Value = TextBox8.Value
iRow = Sheets(2).Range("A1048576").End(xlUp).Row + 2
i = i + 1
End If

If CheckBox3.Value = True Then
.Range("F" & iRow).Value = CheckBox3.Caption
.Range("G" & iRow).Value = TextBox9.Value
.Range("H" & iRow).Value = TextBox10.Value
.Range("I" & iRow).Value = TextBox11.Value
iRow = Sheets(2).Range("A1048576").End(xlUp).Row + 3
i = i + 1
End If
If CheckBox3.Value = True Then
i = i + 1
End If

If CheckBox3.Value = True Then
.Range("F" & iRow).Value = CheckBox4.Caption
.Range("G" & iRow).Value = TextBox12.Value
.Range("H" & iRow).Value = TextBox13.Value
.Range("I" & iRow).Value = TextBox14.Value
iRow = Sheets(2).Range("A1048576").End(xlUp).Row + 4
i = i + 1
End If


End With
Call Reset


Application.ScreenUpdating = True
End Sub


Le problème ce que j'arrive pas à compter i pour savoir ensuite au niveau de 2ème enregistrement à partir de quelle ligne je dois commencer
 
A quoi sert votre "i" ?
Vous l’initialisez à 0 mais vous ne vous en servez pas.
Je pense que le souci vient de :
iRow = Sheets(2).Range("A1048576").End(xlUp).Row + 1 + i
Cela compte les lignes occupées de la colonne A.
Cependant vous écrivez en colonne FGHI sur plusieurs lignes mais pas en colonne A, hormis au début.
Donc, le coup d'après, la valeur iRow = Sheets(2).Range("A1048576").End(xlUp).Row + 1 + i sera fausse.
Je pense qu'il faut qu'à chaque fois que vous faites une écriture en FGHI vous écriviez le N° de semaine en colonne A.
Ou alors, comme à chaque fois vous écrivez en FGHI, votre calcul de ligne doit se faire sur F par exemple. C'est à dire la colonne la plus remplie.
Essayer avec : iRow = Sheets(2).Range("F1048576").End(xlUp).Row + 1 pour voir.
 
Merciii 🙂
Est ce que vous pouvez me donner le syntaxe pour que je puisse remplir les ligne à partir de la 4ème et non pas la deuxième svp ?

Cad comment je dois mettre "iRow = Sheets(2).Range("F1048576").End(xlUp).Row + 1 " pour que je commence à remplir la sheet2 dès la 4ème ligne ?
 
Si la colonne F est toujours la plus remplie, mettez exactement ce que vous proposez.
iRow = Sheets(2).Range("F1048576").End(xlUp).Row + 1
Il vous donnera la première ligne disponible de la colonne F.
 
oui merci ça marcher 🙂

Je voudrais juste comment faire pour que je commence de la 4ème ligne parce que je va ajouter d'autres classsification de données et donc je dois commencer à remplir de la 4ème ligne
 
La quatrième ligne de quoi ?
Si vous faites :
iRow = Sheets(2).Range("F1048576").End(xlUp).Row + 4
Il commencera à la quatrième ligne après la première ligne trouvée.
C'est à dire qu'à chaque fois que cette macro s'activera les nouvelles écritures s'effectueront quatre lignes en dessous de la première ligne disponible.
 
Quand l'avait mis comme ça iRow = Sheets(2).Range("F1048576").End(xlUp).Row + 4 il a toujours sauter 4 ligne alors que je veux qu'il commence de la 4ème ligne et ensuite il saute une ligne par ligne
 
Cela veut dire que vous partez d'une feuille Recap vierge ?
Dans ce cas, au début vous faites :
iRow = Sheets(2).Range("A1048576").End(xlUp).Row + 1
if iRow<4 then iRow=4 ' 4 ou 5 suivant ce que vous voulez.
Donc les premières lignes seront toujours vierges.
Après les premières écritures, comme iRow>4 ce sera la gestion normale des lignes.
 
- 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
18
Affichages
941
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…