Ajouter ligne dans une autre feuille (VBA)

divad

XLDnaute Junior
Bonjou à tous,

je suis en train de débuter avec VBA et je souhaite ajouter une ligne (vierge pour le moment) dans une autre feuille de mon classeur.

Pour ce faire, j'ai trouvé comment ajouter une ligne à la fin d'un tableau et cela fonctionne parfaitement quand je le fais depuis une seule et même feuille.

Une fois que je tente de le faire sur une autre feuille, du même classeur, ça ne fonctionne plus:

Code:
Private Sub AnadirPersona_Click()

'Feuille active : TM
Sheets("TM").Select

'Selection de la premiere ligne vide

i = 10
    While Not Range("f" & i & "").Value = ""
        i = i + 1
    Wend
    'Selection de la cellule de la ligne suivante
    Sheets("TM").Range("f" & i & "").Select

'Insertion d'une ligne
ActiveSheet.Rows(i & ":" & i).Select
Selection.Insert Shift:=xlDown

End Sub

Je travaille donc sur un bouton de la feuille "Hoja1", qui n'apparait donc pas dans ce code.
Dans mon cas, la ligne est bien ajoutée dans mon onglet TM, mais elle est ajoutée à la ligne 10 (et si je change la valeur de i, alors elle est ajoutée à la ligne i).

Pouvez-vous me donner un coup de main s'il vous plait? :)

Merci d'avance!

D
 

divad

XLDnaute Junior
Re : Ajouter ligne dans une autre feuille (VBA)

Hum, j'ai trouvé... il manquait une référence à la feuille active à un endroit. Voilà le bon code:

Code:
Private Sub AnadirPersona_Click()

'Feuille active : TM
Sheets("TM").Select

'Selection de la premiere ligne vide

i = 10
    While Not Sheets("TM").Range("f" & i & "").Value = ""
        i = i + 1
    Wend
    'Selection de la cellule de la ligne suivante
    Sheets("TM").Range("f" & i & "").Select

'Insertion d'une ligne
ActiveSheet.Rows(i & ":" & i).Select
Selection.Insert Shift:=xlDown

End Sub

Je ne comprends pas pourquoi ça ne fonctionnait pas avant. Il ne suffit pas de faire référence à la feuille au début pour qu'on travaille sur celle-ci jusqu'à nouvel ordre?

Merci ;)
 
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : Ajouter ligne dans une autre feuille (VBA)

Hum, j'ai trouvé... il manquait une référence à la feuille active à un endroit. Voilà le bon code:

Code:
Private Sub AnadirPersona_Click()

'Feuille active : TM
Sheets("TM").Select

'Selection de la premiere ligne vide

i = 10
    While Not Sheets("TM").Range("f" & i & "").Value = ""
        i = i + 1
    Wend
    'Selection de la cellule de la ligne suivante
    Sheets("TM").Range("f" & i & "").Select

'Insertion d'une ligne
ActiveSheet.Rows(i & ":" & i).Select
Selection.Insert Shift:=xlDown

End Sub

Je ne comprends pas pourquoi ça ne fonctionnait pas avant. Il ne suffit pas de faire référence à la feuille au début pour qu'on travaille sur celle-ci jusqu'à nouvel ordre?

Merci ;)

Bonjour divad,

Que viennent faire ces guillemets, apparemment inutiles ?

Code:
[CODE]
Private Sub AnadirPersona_Click()

'Feuille active : TM
Sheets("TM").Select

'Selection de la premiere ligne vide

i = 10
    While Not Sheets("TM").Range("f" & i[COLOR="Red"][B] & ""[/B][/COLOR]).Value = ""
        i = i + 1
    Wend
    'Selection de la cellule de la ligne suivante
    Sheets("TM").Range("f" & i & "").Select

'Insertion d'une ligne
ActiveSheet.Rows(i & ":" & i).Select
Selection.Insert Shift:=xlDown

End Sub

Par ailleurs, si ta boucle cherche la dernière ligne remplie, tu peux avantageusement la remplacer par cette ligne :

Code:
i = Sheets("TM").Range("F65536").End(xlUp).Row + 1

Espérant avoir aidé.

Cordialement.
 

divad

XLDnaute Junior
Re : Ajouter ligne dans une autre feuille (VBA)

Bonjour,

merci de la réponse.

Pour les espaces, j'avoue que je ne sais pas pourquoi ils sont là. Vu que ça fonctionnait comme ça, j'ai préféré laisser ( c'est un code adapté de ce que j'ai trouvé sur le net).

Pour la ligne que tu me donnes, je crois l'avoir déjà rencontrée sur internet avant mais là encore je n'arrive pas à la faire fonctionner. Peut etre que c'est parce que le code qui suit ma boucle est déjà trop lié aux variables de ma boucle... je ne sais pas...

Merci de la réponse en tout cas!

D
 

Discussions similaires

Réponses
22
Affichages
690

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 847
dernier inscrit
Djigbenou