Avant tout, je suis débutant en programmation donc si des choses vous paraissent pas logique...ba c'est normal
N'hésitez pas à me faire des propositions plus performantes.
J'aimerais remplir des comboboxs à l'aide d'une boucle car mon Userform en contient un grand nombre.
Voilà le Code que j'ai fais
For Each Ctrl In TEST_FORMULAIRE.Controls
If Ctrl.Name Like "Type_*" Then
U = U + 1
TypeColonne = 53 + U
For a = 3 To 15
Controls("Type_" & U).AddItem Sheets(" DONNEES").Cells(a, TypeColonne)
Next a
End If
Next
Mais j'aimerais à la place de:
For a= 3 to 15
avoir un truc du genre:
For a= 3 to "dernière cellule remplie"
ou
For a= 3 to "cellule contenant la valeur= Inconnu"
ce qui reviendrait au même car chacune de mes colonnes de données fini par la valeur "Inconnu"
J'ai essayé un truc du type
Fin = Cells.Find(What:"Inconnu")
For a= 3 to Fin
Utilise alors la notation Cells !
Exemple :
Range("C100")
n'est rien d'autre que
cells(100,3)
Voilà tout !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Bonjour,
Ce que tu cherches, finalement, n'est pas ce qu'indique ton titre et tes premières phrases, mais tout simplement :
Comment mettre dans une variable le N° de la dernière cellule remplie d'une colonne ?
C'est çà, ta question ?
Range("C" & Rows.count).end(xlup).row
te retourne le N° de la dernière ligne remplie de la colonne C
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Ouais ===>> 52000 caractères en moins de 0,01 secondes serait une vitesse acceptable ?
Si oui je continue
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Zut (réponse destinée à une autre discussion). Ne pas en tenir compte ici.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Ce que je cherche est bien dans le titre, J'ai bien récupéré le code pour trouver la dernière ligne remplie (il en existe plusieurs qui se ressemble plus ou moins) mais je n'arrive pas à l'intégrer dans la boucle for.
Les essais que j'avais fait ne fonctionnent pas d'où le For a= 3 to 15
peux-tu m'aider à l'intégrer dans le code que j'ai posté stp?
Voilà ce que j'ai fait, mais ça marche pas
Dim Nolign As Byte
Nolign= Range("Type_" & U & Rows.count).end(xlup).row
For Each Ctrl In TEST_FORMULAIRE.Controls
If Ctrl.Name Like "Type_*" Then
U = U + 1
TypeColonne = 53 + U
For a = 3 to Nolign
Controls("Type_" & U).AddItem Sheets(" DONNEES").Cells(a, TypeColonne)
Next a
End If
Next
Non ! Ce qui est dans le titre est le but final à atteindre et non ta vraie difficulté (puisque le reste a été traité par toi-même) : mettre dans une variable toto le N° de la dernière ligne remplie.
Et donc :
savoir remplacer :
For a = 3 To 15
par
for a = 3 to toto
Te reste à réfléchir sur le sens de ton :
Nolign= Range("Type_" & U & Rows.count).end(xlup).row
qui n'aurait de sens que si tu cherches la dernière ligne remplie de la colonne "Type_" & U /u/u ________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Effectivement, Type_U désigne le nom de ma combobox et non le nom de ma colonne
ma colonne est dans la variable TypeColonne d'où :
NoLign= Range ( TypeColonne & Rows.count).end(x1up).row
mais j'ai l'erreur 1004 "La methode 'Range' de l'objet '_Global' à échoué"
Je continu donc avec l'aide de la Fonction Range...et je vois qu'il veut une info de type "A1" et moi Je lui donne un numéro de colonne (53+U)
As-tu une idée?