Insérer une ligne après la ligne de titre dans un tableau

Résolu/Fermé
margir4233 Messages postés 67 Date d'inscription mardi 12 avril 2016 Statut Membre Dernière intervention 22 février 2023 - 12 avril 2016 à 00:57
 margir4233 - 15 avril 2016 à 00:05
Bonjour,
Je suis à mes premières lignes de codes VBA, je pige ça et à sur internet du code et ça fonctionne pas si mal. Sauf que je ne trouve pas comment insérer une ligne dans un tableau, toujours sous la ligne de titre.

Voici le code de mon Bouton pour inscrire les informations de mon formulaire dans le tableau de l'onglet SaisieTemps. Ca fonctionne bien sauf que ça ajoute les données sur la dernière ligne de mon tableau, pas sur la 2e ligne.

Private Sub CommandButton1_Click()
Dim L As Integer
If MsgBox("Confirmez-vous l'insertion de ce temps ?", vbYesNo, "Confirmation?") = vbYes Then
L = Sheets("SaisieTemps").Range("a65536").End(xlUp).Row + 1
Cells(L, 1) = ComboBox1.Value
Cells(L, 2) = ComboBox2.Value
Cells(L, 3) = TextBox1.Value
Cells(L, 4) = TextBox2.Value
Cells(L, 5) = ComboBox3.Value
Cells(L, 7) = TextBox3.Value

End If
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("Calendrier[#Headers,[Date]]"), _
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter _
:=False, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, _
Other:=False, FieldInfo:=Array(1, 5), TrailingMinusNumbers:=True
Range("A2").Select

End Sub

Un gros merci pour votre aide!!!
A voir également:

3 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 12/04/2016 à 06:49
Bonjour

tout simplement:

Rows(2).insert
cells(2,1)...etc
 Michel
0
Bonjour Michel,
Merci de m'aider, mais pour moi, ce n'est pas si simple :)
A quel endroit dans le code ci-dessus je dois mettre Rows(2).insert?
J'ai essayé plusieurs choses mais je vois que je ne suis pas très douée...
0
Utilisateur anonyme
14 avril 2016 à 06:29
Bonjour margir4233,

D'abord, merci à michel_m de t'avoir aidée avec son message 1.
Je ne mets pas le lien car j'ai vu que tu l'as déjà lu.

En suivant ses 2 très bons conseils, et suite à ton message 2,
voici plus d'informations :

-----------------------------------------------------------------------------

1) Regarde la ligne 4 de ta Sub :

L = Sheets("SaisieTemps").Range("a65536").End(xlUp).Row + 1

Elle met dans L le n° de la dernière ligne de ton tableau + 1 ;
donc si ton tableau a déjà 19 lignes (par exemple), alors
L sera égal à : 19 + 1 = 20

Voilà pourquoi ça ajoute les données sur la dernière ligne
de ton tableau : lignes Cells(L, n) = ...

Tu peux supprimer cette ligne qui est inutile pour ce que tu veux
faire, et donc supprimer aussi sa déclaration : Dim L As Integer

-----------------------------------------------------------------------------

2) Au même endroit où était la ligne supprimée : L = ...
donc juste sous la ligne : If MsgBox(...) = vbYes Then
ajoute cette ligne : Rows(2).Insert

Elle insère une nouvelle ligne vierge juste au-dessus de l'actuelle
ligne 2 ; et c'est cette ligne vierge qui devient maintenant la 2ème
ligne, celle où il suffit d'écrire les données de ton formulaire.

Pour cela, dans tes 6 lignes Cells(L, n) = ...
il te suffit de remplacer L par 2 (= ligne 2 au lieu de ligne L).
Je suis sûr que tu as compris que le n correspond à tes 6
valeurs 1 à 5 et 7 (n° de colonne).

-----------------------------------------------------------------------------

Après le End If, tout le reste de ta Sub est bon :
ne fais aucun changement : laisse tel que !

Cordialement.  😊
 
0
Un gros merci albkan, autant pour les explications que pour le code (merci aussi à michel_m bien sûr). J'en fais l'essai à l'instant.
0