Problème trouver dernière cell

https://www.excel-pratique.com/~files/doc/GENEALOGIE.xls

Bonjour à tous!

Je suis en train de faire une petite macro pour ma MOMAN mais je ne sais

pas comment éviter d'écraser les données quand elle réutilise le formulaire.

Je voudrais aussi éviter de lui demander combien de personnes elle veut encoder.

J'ai pensé à ça:

Range("A1" ).Select

While IsEmpty(ActiveCell) = False

ActiveCell.Offset(1, 0).Activate

Wend

mais étant newbie je sais pas comment l'utiliser

j'ai aussi joué avec l'enregistreur de macro et j'ai eu ça mais je sais pas non plus comment l'utiliser...

Selection.End(xlDown).Select

ActiveCell.Offset(1, 0).Activate

aidez-moi s'il-vous-plait

merci encore

G.

voici ma macro:

Sub GENEALOGIE()
Dim nombre As Integer
Dim cellule As Integer

nombre = InputBox("Entrez le nombre d'ancètres que vous désirez ajouter à la base de données" )

'titre gras plus autofit

Cells(1, 1) = "Sexe"
Cells(1, 2) = "Nom, Prénom"
Cells(1, 3) = "Date Naissance"
Cells(1, 4) = "lieu de Naissance"
Cells(1, 5) = "Date Décès"
Cells(1, 6) = "Lieu Décès"
Cells(1, 7) = "Nom du Père"
Cells(1, 8) = "Nom Mère"
Cells(1, 9) = "Epoux(se)"
Cells(1, 10) = "Date Mariage"
Cells(1, 11) = "Lieu Mariage"
Cells(1, 12) = "Nombre Enfant(s)"
Cells(1, 13) = "Nom(s)Enfant(s)"
Cells(1, 14) = "Source"

Range("A1:N1" ).Select
    Selection.Font.Bold = True

Columns.EntireColumn.AutoFit

For i = 2 To nombre + 1
   'Affichage du formulaire et transfert des données dans la macro
 Gen.Show

Cells(i, 1) = Gen.Sex.Text
Cells(i, 2) = Gen.NOM.Text
Cells(i, 3) = Gen.DN.Text
Cells(i, 4) = Gen.LN.Text
Cells(i, 5) = Gen.DD.Text
Cells(i, 6) = Gen.LD.Text
Cells(i, 7) = Gen.NP.Text
Cells(i, 8) = Gen.NM.Text
Cells(i, 9) = Gen.NE.Text
Cells(i, 10) = Gen.DM.Text
Cells(i, 11) = Gen.LM.Text
Cells(i, 12) = Gen.NEN.Text
Cells(i, 13) = Cells(i, 2)
Cells(i, 14) = Gen.SOU.Text

'Décharge le formulaire
Unload Gen
Next i

'trie selon ordre alpha Nom (colonne B)

 Cells.Select
    Selection.Sort Key1:=Range("B1" ), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

Range("A1:Ni" ).Select

Columns.EntireColumn.AutoFit
End Sub

Bonsoir,

en regardant ton fichier, il y a un petit truc qui m'a chiffoné :

MsgBox "SI VOUS N'ETES PAS CETTE PERSONNE" + Chr(13) + Chr(10) + "PENSEZ A REMUNERER LE TRAVAIL DE L'AUTEUR", vbOKOnly, "GENEALOGIE"

On aura un pourcentage?

Sinon, ce code te donne la première ligne vide, en fonction de la colonne A :

[A65000].End(xlUp).Row + 1

of course!!

je le place où ??

Merci l'ami mais je suis trop nul! Je ne sais pas comment utiliser ton info...

Peux-tu être plus explicite?

Quelq'un aurait une routine qui renverrait les coordonnées de la première cellule vide de la colonne B et me permettrait d'utiliser ici mon formulaire? merci

Re-,

j'avais pas regardé le code en entier....

Tu charges l'usf, puis le décharge, puis le recharge..........

Il y aurait bien plus simple, sans inputbox, juste avec l'usf, et continuer tant qu'on veut....

Le code que je t'ai loué ( ), tu pourrais le mettre ici :

i = [A65000].End(xlUp).Row + 1

ainsi, tes Cells(i, 1).....seraient remplies

que veux tu dire, c'est quoi l'usf??

RE-,

Euh, tu l'appelles "Formulaire"....

usf = Userform

j'ai pas tout compris

mais j'ai testé en virant for i et en copiant ce que tu as écrit,

j'ai du également effacer "next i" mais ça foire...

Ca me fait des choses abérantes: lorsque je réutilise le formulaire la ligne

de titre n'est plus en première ligne!!!

en tout cas un tout GRAND MERCI de ton aide Felix !! 8)

up 8)

Bonsoir,

remplace ton code dans le module 1 par celui-ci :

Sub GENEALOGIE()

MsgBox "CECI EST UNE MACRO CREE POUR LAURE DOLHEN", vbOKOnly, "GENEALOGIE"
MsgBox "SI VOUS N'ETES PAS CETTE PERSONNE" + Chr(13) + Chr(10) + "PENSEZ A REMUNERER LE TRAVAIL DE L'AUTEUR", vbOKOnly, "GENEALOGIE"

Dim nombre As Integer
Dim cellule As Integer

'titre gras plus autofit

Cells(1, 1) = "Sexe"
Cells(1, 2) = "Nom, Prénom"
Cells(1, 3) = "Date Naissance"
Cells(1, 4) = "lieu de Naissance"
Cells(1, 5) = "Date Décès"
Cells(1, 6) = "Lieu Décès"
Cells(1, 7) = "Nom du Père"
Cells(1, 8) = "Nom Mère"
Cells(1, 9) = "Epoux(se)"
Cells(1, 10) = "Date Mariage"
Cells(1, 11) = "Lieu Mariage"
Cells(1, 12) = "Nombre Enfant(s)"
Cells(1, 13) = "Nom(s)Enfant(s)"
Cells(1, 14) = "Source"

Range("A1:N1").Font.Bold = True
Gen.Show

'trie selon ordre alpha Nom (colonne B)

 Cells.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

Range("A1:N1").EntireColumn.AutoFit
End Sub

et dans le code du bouton OK de ton userform GEN, mets ce code :

Private Sub OK_Click()
i = [A65000].End(xlUp).Row + 1
Cells(i, 1) = Gen.Sex.Text
Cells(i, 2) = Gen.NOM.Text
Cells(i, 3) = Gen.DN.Text
Cells(i, 4) = Gen.LN.Text
Cells(i, 5) = Gen.DD.Text
Cells(i, 6) = Gen.LD.Text
Cells(i, 7) = Gen.NP.Text
Cells(i, 8) = Gen.NM.Text
Cells(i, 9) = Gen.NE.Text
Cells(i, 10) = Gen.DM.Text
Cells(i, 11) = Gen.LM.Text
Cells(i, 12) = Gen.NEN.Text
Cells(i, 13) = Cells(i, 2)
Cells(i, 14) = Gen.SOU.Text
End Sub

J'ai toujours besoin d'aide si quelqu'un trouve le temps de m'aider ce serait sympathique.

Merci d'avance 8)

Euh, je ne crois pas que la police de ma réponse soit en blanc......

Tu as testé?

Si oui, explique ce qui cloche......

sorry Felix, j'avais pas vu...

je test de suite!!

merci l'ami!

Merci Félix, tout fonctionne, je suis en train d'ajouter quelques fioritures pour le fun.

MERCI

RESOLU

Rechercher des sujets similaires à "probleme trouver derniere"