Coordonnées cellule dernière vide

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

T

tom_the_cat

Guest
Bonjour à tous,

Il me manque un tout petit truc et après j'aurais finalisé mon projet:

je cherche à donner une coordonnée de la dernière cellule vide. J'ai cette formule en VBA:

Code:
 .Cells(VIDE, y) = TextBox1 & TextBox2

Quelles est la facon d'écrire "VIDE" dans ce cas la pour qu'il trouve en coordonnée x la première cellule vide qu'il trouve?

Merci beaucoup à tous
 
Re : Coordonnées cellule dernière vide

Rha ca m'énèrve, il manque rien du tout. Je pense que ta solution est la bonne mais que je l'utilise mal.

Voici mon code:

Code:
If ComboBox1.ListIndex = -1 Then Exit Sub
y = ComboBox1.ListIndex + 2
x = Range("A65536").End(xlUp).Row
.Cells(x, y) = TextBox1 & TextBox2

J'ai essayé de mettre +1, + 2, +9, +100 après le .Row mais ca ne marche pas. L'endroit ou s'inscrit les données change effectivement dans mon tableau mais les données ne s'inscrivent pas dans la première cellule vide trouvée.

Idéalement, j'aurais besoin que les données TextBox1 & TexBox2 s'inscrivent dans la première cellule vide entre les cellules B10 à B109.

Il y a un moyen de faire ca?

Merci pour le coup de main
 
Re : Coordonnées cellule dernière vide

Bonjour le fil 🙂,
Code:
[COLOR=red][B]y = ComboBox1.ListIndex + 2[/B][/COLOR]
.Cells(x, [COLOR=red][B]y[/B][/COLOR]) = TextBox1 & TextBox2

Idéalement, j'aurais besoin que les données TextBox1 & TexBox2 s'inscrivent dans la première cellule vide entre les cellules B10 à B109.
Si veux être dans la colonne B, y = 2 😕...
Bonne soirée 😎
 
Re : Coordonnées cellule dernière vide

Eh ben ca ne marche toujours pas malheureusement. Peut-être que tu n'as pas tord JNP, j'ai repris en ancien code et en mettant + 2 ca marchait pour le combobox.

Je vous envoie un fichier exemple ce sera plus simple.

Là ca marche presque mais il ne rentre pas les données saisies à la première case vide.

Merci beaucoup pour votre aide.
 

Pièces jointes

Dernière modification par un modérateur:
Re : Coordonnées cellule dernière vide

Re 🙂,
Avec un fichier, c'est plus clair 🙄...
Code:
[COLOR=blue]Private Sub[/COLOR] CommandButton1_Click()
[COLOR=blue]With[/COLOR] Sheets("GestionEquipe")
[COLOR=blue]If[/COLOR] ComboBox1.ListIndex = -1 [COLOR=blue]Then Exit Sub[/COLOR]
y = ComboBox1.ListIndex + 2
x = Cells(65346, y).End(xlUp).Row + 1
.Cells(x, y) = TextBox1.Value & " " & TextBox2.Value
 
[COLOR=blue]End With[/COLOR]
[COLOR=green]'    Unload SaisieNouveauNom[/COLOR]
 
 
[COLOR=blue]End Sub[/COLOR]
fonctionnera certainement 😉.
Tu ne cherchais pas la dernière cellule en tenant compte du groupe 😛.
Vu que tu as un bouton Quitter, j'ai ôté le déchargement de l'USF pour pouvoir faire des saisies consécutives 😀.
Bon courage 😎
 
Re : Coordonnées cellule dernière vide

Ah bah ouai, c'était vraiment tout couillon en fait.

Merci beaucoup JPN et Efgé pour le coup de main 😉

Dernière question, est ce que tu crois que c'est faisable d'intégrer un truc du genre, quand tu insères une nouvelle donnée, ensuite tu tris la colone par ordre alphabétique?
 
Re : Coordonnées cellule dernière vide

Re 🙂,
Sans aucun souci 😉.
Tu as vu comment déterminer ta dernière cellule avec ta fonction finemp(). Il te reste juste à faire le tri de ta zone. Pour cela, tu peux enregistrer une macro en faisant le tri et modifier le code pour intégrer ta dernière ligne. Je ne peux malheureusement pas le faire pour toi, je suis en 2007/2010 et le code généré ne sera pas compatible avec 2003 et antérieur, car le tri qui était limité à 3 colonnes ne l'est plus, ceci influant sur le code. Par contre, le code 2003 fonctionne sous 2007/2010 😛.
Si tu n'arrives pas à le modifier, copie le sur le forum, je regarderai 🙄.
Bon courage 😎
 
Re : Coordonnées cellule dernière vide

Bon c'est surement pas très joli mais ca fonctionne 😀

Code:
Private Sub CommandButton2_Click()
Unload SaisieNouveauNom
End Sub

Private Sub CommandButton1_Click()
With Sheets("GestionEquipe")
If ComboBox1.ListIndex = -1 Then Exit Sub
y = ComboBox1.ListIndex + 2
x = Cells(8, y).End(xlDown).Row + 1
.Cells(x, y) = TextBox1.Value & " " & TextBox2.Value


    Range("B9:B24").Select
    ActiveWorkbook.Worksheets("GestionEquipe").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("GestionEquipe").Sort.SortFields.Add Key:=Range( _
        "B10:B24"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("GestionEquipe").Sort
        .SetRange Range("B9:B24")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
        
            Range("C9:C24").Select
    ActiveWorkbook.Worksheets("GestionEquipe").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("GestionEquipe").Sort.SortFields.Add Key:=Range( _
        "C10:C24"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("GestionEquipe").Sort
        .SetRange Range("C9:C24")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
        
            Range("D9:D24").Select
    ActiveWorkbook.Worksheets("GestionEquipe").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("GestionEquipe").Sort.SortFields.Add Key:=Range( _
        "D10:D24"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("GestionEquipe").Sort
        .SetRange Range("D9:D24")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
        
     End With

    Range("E9:E24").Select
    ActiveWorkbook.Worksheets("GestionEquipe").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("GestionEquipe").Sort.SortFields.Add Key:=Range( _
        "E10:E24"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("GestionEquipe").Sort
        .SetRange Range("E9:E24")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
        
        End With
        
            Range("F9:F24").Select
    ActiveWorkbook.Worksheets("GestionEquipe").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("GestionEquipe").Sort.SortFields.Add Key:=Range( _
        "F10:F24"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("GestionEquipe").Sort
        .SetRange Range("F9:F24")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
 
End With
End With

Unload SaisieNouveauNom
SaisieNouveauNom.Show


End Sub

EN fait depuis le temps que j'utilise VBA tu viens de m'apprendre qu'il y avait un enregistreur de macro. Ca simplifie drôlement la vie, moi je me faisais chier à tout écrire manuellement, je galerais a fond.
 
Re : Coordonnées cellule dernière vide

Bonjour tom_the_cat, JNP, le fil, le forum,
Une proposition pour le tri :
Code:
[COLOR=blue]Private Sub[/COLOR] CommandButton1_Click()
Application.ScreenUpdating = [COLOR=blue]False[/COLOR]
[COLOR=blue]With[/COLOR] Sheets("GestionEquipe")
    [COLOR=blue]If[/COLOR] ComboBox1.ListIndex = -1 [COLOR=blue]Then Exit Sub[/COLOR]
    y = ComboBox1.ListIndex + 2
    x = Cells(8, y).End(xlDown).Row + 1
    .Cells(x, y) = TextBox1.Value & " " & TextBox2.Value
    .Range(Cells(10, y), Cells(x, y)).Sort Key1:=.Cells(10, y), Order1:=xlAscending, Orientation:=xlTopToBottom
   [COLOR=green]'Si la ligne précédente ne passe pas sous 2003, la remplacer par les deux ci dessous[/COLOR]
[COLOR=green]   '.Range(Cells(10, y), Cells(x, y)).Select[/COLOR]
[COLOR=green]   'Selection.Sort Key1:=.Cells(10, y), Order1:=xlAscending, Orientation:=xlTopToBottom[/COLOR]
    .Cells(9, y).Select
[COLOR=blue]End With[/COLOR]
Application.ScreenUpdating = [COLOR=blue]True[/COLOR]
Unload SaisieNouveauNom
SaisieNouveauNom.Show
[COLOR=blue]End Sub[/COLOR]
Cordialement
 
Re : Coordonnées cellule dernière vide

Un peu plus joli en effet.

Par contre j'ai un problème, pas avec le tri qui fonctionne très bien mais avec la selection de la première cellule non vide.

J'ai recopié le code d'exemple dans mon fichier final en l'adaptant mais pour cette partie du code:

Code:
    x = Cells(8, y).End(xlDown).Row + 1
    .Cells(x, y) = TextBox1.Value & " " & TextBox2.Value

Il ne trouve pas le première cellule vide pour x de la colonne déterminée en y par le combobox mais il trouve 65537, ce qui me donne une erreur évidement. Donc c'est comme s'il ne s'arrêtait pas à la première cellule vide qu'il trouve mais qu'il allait jusqu'en bas et ensuite qu'il ajoute +1.

Ce que je ne comprends pas c'est que ca fonctionne dans mon fichier de test que je vous ai envoyé mais quand je l'adapte a ma version finale c'est 2 lignes de code ne fonctionnent pas.

Avez-vous une idée de la raison? Il y a t-il un autre moyen d'écrire ca?

Merci beaucoup
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour