Ranger automatiquement des données les une sous les autres

Bonjour,

J'ai problème en VBA, j'ai un fichier Excel ou j'ai un tableau où j'inscris un prénom d'élève, ainsi que sa classe.

Le but est qu'une fois que j'ai rempli le tableau, je clique sur un bouton, et le prénom de l'élève se range automatiquement dans sa classe en insérant une nouvelle ligne.

Comment faire cela mais sans se référer au numéro de ligne ? car si j'insère des lignes en haut du tableau, le numéro des lignes en bas vont bouger.

Dans mon exemple, je veux insérer "Etienne" en B20 en décalant les lignes vers le bas.

Je ne sais pas si je suis très clair, mais je vous fournis le fichier Excel en pièce jointe.

Merci d'avance.

Bonjour,

Si tu le permets deux remarques :

1. Ta feuille est très très bizarre ... car tu confonds Excel .... avec un vulgaire traitement de texte ...

2. Si tu veux conserver cette très étrange structure ... la solution à ton problème est simple :

tu dois passer par la recherche de la Classe qui va te donner le Numéro de la ligne à partir de laquelle tu pourras insérer ...

En espèrant que cela t'aide ...

Merci pour ta réponse,

Si c'est "bizarre", c'est parce que j'ai simplifier un fichier Excel que j'ai pour mon boulot, mais le problème est le même.

Sais tu comment faire pour faire cette recherche en VBA, afin que je puisse utiliser le bouton ? car je débute en VBA.

Re,

Pour te mettre le pied à l'étrier ...

Sub Cherche()
Dim i As Long
      i = Columns("B:B").Find(What:=Range("C5"), After:=Range("B1"), LookIn:=xlFormulas, _
        LookAt:=xlWhole, SearchOrder:=xlByRows).Row
      MsgBox " La Classe de " & Range("C5") & " se trouve à la Ligne " & i
End Sub

Comme déjà indiqué ... à partir du moment où tu connais la ligne ... tu peux envisager d'insérer le nouveau prénom ...

En espèrant que cela t'aide

Super merci beaucoup !

il y a juste cette partie de code qui est incompréhensible pour moi :

"After:=Range("B1"), LookIn:=xlFormulas, _

LookAt:=xlWhole, SearchOrder:=xlByRows).Row"

Mais c'est pas grave je vais me renseigner sur le net.

Encore merci

Bonjour,

De rien ...

Pour effectuer sa recherche, l'instruction Find (sur deux lignes...) a besoin de ces éléments ...

Merci beaucoup, j'ai presque réussis a adapter la formule, mais il me manque quelque chose que je n'arrive pas à faire.

Une fois qu'on a trouver la classe, j'ai réussis à insérer un ligne en dessous.

J'arrive à copier le prénom, mais je n'arrive pas a le coller dans la ligne qui vient d'être créer.

Je vous met le code que j'ai essayer de faire.

Sub Cherche()
Dim i As Long
      i = Columns("B:B").Find(What:=Range("C5"), After:=Range("B1"), LookIn:=xlFormulas, _
        LookAt:=xlWhole, SearchOrder:=xlByRows).Row

        Rows(i + 1).Insert

        Range("C4").Copy Range("i + 1")

End Sub

Comment puis-je le corriger svp ?

Bonjour,

Ci-joint ton fichier test ...

En espèrant que cela t'aide

10test-aureldel.xlsm (21.82 Ko)
Rechercher des sujets similaires à "ranger automatiquement donnees"