Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

filtre de données : adresse ligne de début et adresse ligne de fin

24 réponses
Avatar
JP
Bonjour,

De retour pour une nouvelle question.
J'ai un filtre appliqu=E9 en colonne C.
Je voudrais avec une boucle r=E9cup=E9rer des noms qui se trouvent en colon=
ne A.
Il existe peut =EAtre un moyen simple de le faire mais je pensais le faire =
avec une boucle toute simple genre For ... Next
Pour cela, il faut que je connaisse le num=E9ro de ligne du d=E9but et le n=
um=E9ro de ligne de fin pour =E9tablir la boucle.

Comment puis-je faire?=20
Cette solution ou une autre...

Merci

JP

10 réponses

1 2 3
Avatar
JP
Bonjour Daniel,

Des points obscurs, non, c'est la nuit noir, sans lune.
Le niveau est trop élevé, je n'arrive pas à adapter le code. J'ai des labels effacés, la liste des noms prénoms commence au 5ème nom, ...
Il va me falloir un certain temps pour digérer.
Envoyer le fichier sur le site serait la solution mais je ne peux le faire car il y a trop de noms et prénoms.
Je réfléchis à ton code.

Merci

JP
Avatar
DanielCo
J'ai mis des commentaires, si ça peut t'aider.

Private Sub CommandButton1_Click()
Dim Plage As Range, C As Range, Res As Integer
Dim Ctrl As Control
'effacement de tous les labels (comme à l'activation du userform)
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.Label Then Ctrl.Caption = ""
Next Ctrl
'Définition de la variable "Plage" comme l'intersection de la
colonne C
'et de la plage filtrée. On décale cette plafe d'une ligne vers le
bas
'(pour éliminer les entêtes) et de 2 colonnes à gauche pour être en
colonne A
Set Plage = Intersect(ActiveSheet.AutoFilter.Range,
[C:C]).Offset(1, -2)
'élimination de la dernière cellule de la plage
Set Plage = Plage.Resize(Plage.Rows.Count - 1)
'on compte le nombre de cellules visibles (c'est l'équivalent de la
fonction SOUS.TOTAL)
's'il y en a, on ne conserve que les cellules visibles
If Application.Subtotal(103, Plage) > 0 Then
Set Plage = Plage.SpecialCells(xlCellTypeVisible)
End If
Res = 0
'boucle dans les cellules visibles
For Each C In Plage
'recherche du premier label ayant une étiquette vide
'on boucle dans les contrôles depuis "Res" jusqu'au dernier
contrôles
For i = Res To Me.Controls.Count - 1
If TypeOf Me.Controls(Res) Is MSForms.Label Then
'on écrit l'étiquette et on sort de la boucle
Me.Controls(Res).Caption = C.Value
Exit For
End If
Next i
Res = Res + 1
Next C
End Sub


Private Sub UserForm_Activate()
Dim Ctrl As Control
'Effacement des étiquettes de label à l'activation du userform
'Boucle sur les contrôles
For Each Ctrl In Me.Controls
'si c'est un label, on l'efface
If TypeOf Ctrl Is MSForms.Label Then Ctrl.Caption = ""
Next Ctrl
End Sub

Daniel


Bonjour Daniel,

Des points obscurs, non, c'est la nuit noir, sans lune.
Le niveau est trop élevé, je n'arrive pas à adapter le code. J'ai des labels
effacés, la liste des noms prénoms commence au 5ème nom, ... Il va me falloir
un certain temps pour digérer. Envoyer le fichier sur le site serait la
solution mais je ne peux le faire car il y a trop de noms et prénoms. Je
réfléchis à ton code.

Merci

JP
Avatar
JP
Re Daniel,

Beaucoup plus clair pour moi. Néanmoins les labels sont tous effacés al ors que certains doivent rester.
Quand ils sont complétés, du coup le resultat attendu n'est pas celui d ésiré.
J'
Avatar
JP
Désolé erreur de manip.
Re Daniel,

Beaucoup plus clair pour moi. Néanmoins les labels sont tous effacés al ors que certains doivent rester.
Ensuite, quand ils sont complétés, le resultat attendu n'est pas celui désiré.
J'ai supprimé un maximum de nom et prénom.
Regarde le résultat.

Merci
JP
Voici le lien pour le fichier.
http://cjoint.com/?3Kzrs6T5Xww
Avatar
Jacky
Re...
S'il s'agit de cocher les CheckBoxs selon les "X" en colonnes "E:H"
Essaie ceci
http://cjoint.com/?BKzu6wZixFa


Pas certain que ce soit une bonne......méthode, mais bon!
--
Salutations
JJ


"JP" a écrit dans le message de news:

Super Jacky, je n'avais pas vu ta réponse.
Cette ligne donne effectivement les coordonnées.
Vous êtes des oufs du VBA vous deux. Je vais vous filer le projet pour que vous vous amusiez.
Je suis en train de retravailler la proposition de Daniel.
Ca va moins vite car il faut que je récupère le prénom colonne B et que je concatène le tout pour mettre dans
les labels.


JP
Avatar
JP
Bonsoir Jacky,

Tu as anticipé sur ce que je souhaite réaliser.Déjà merci car tu as fait apparaitre les noms et prénoms alors que je n'arrivais pas à modi fier la macro de DanielCo.

Tu as pu le remarquer, il s'agit de suivre des documents d'élèves qui p artent en stage en entreprise. Certaines classes font 2 périodes d'autres 3 et enfin encore d'autres font 4 périodes.
En fait je voudrais que lorsque je coche une checkbox quand j'enregistre on retrouve "oui" dans la ligne qui correspond à l'élève et qui corresp onde aussi à la colonne (P1, P2, P3 ou P4). Dans le cas contraire, si la checkbox n'est pas cochée, on trouve inscrit "non".
Inversement à l'ouverture de l'userform4 on retrouve les cases cochées quand il y a "oui" dans la cellule (intersection eleve / Période).
Le must en plus serait que pour une classe qui n'a que deux périodes les chexkbox des périodes 3 et 4 (Toute la colonne P3 et colonne P4) soient invisibles.

Est-ce possible?

Merci déja

JP
Avatar
Jacky
Est-ce possible?

Tout un programme n'est-ce pas ?
Ma ge ........me perdra un jour!
Comme il n'y a que quelques Kms qui nous sépare ;o)
http://cjoint.com/?BKAba47znZ9
--
Salutations
JJ


"JP" a écrit dans le message de news:

Bonsoir Jacky,

Tu as anticipé sur ce que je souhaite réaliser.Déjà merci car tu as fait apparaitre les noms et prénoms alors
que je n'arrivais pas à modifier la macro de DanielCo.

Tu as pu le remarquer, il s'agit de suivre des documents d'élèves qui partent en stage en entreprise.
Certaines classes font 2 périodes d'autres 3 et enfin encore d'autres font 4 périodes.
En fait je voudrais que lorsque je coche une checkbox quand j'enregistre on retrouve "oui" dans la ligne qui
correspond à l'élève et qui corresponde aussi à la colonne (P1, P2, P3 ou P4). Dans le cas contraire, si la
checkbox n'est pas cochée, on trouve inscrit "non".
Inversement à l'ouverture de l'userform4 on retrouve les cases cochées quand il y a "oui" dans la cellule
(intersection eleve / Période).
Le must en plus serait que pour une classe qui n'a que deux périodes les chexkbox des périodes 3 et 4 (Toute
la colonne P3 et colonne P4) soient invisibles.

Est-ce possible?

Merci déja

JP
Avatar
JP
Tu es du soir je vois.
Qqes km? Tu es d'où?

Je regarde dans la journée et je te dirai.

Merci d'avance oh généreux JJ!

JP
Avatar
DanielCo
Bonjour,
J'ai vu que Jacky est pas mal avancé. Dis-moi si je doois continuer
néanmoins.
Daniel


Désolé erreur de manip.
Re Daniel,

Beaucoup plus clair pour moi. Néanmoins les labels sont tous effacés alors
que certains doivent rester. Ensuite, quand ils sont complétés, le resultat
attendu n'est pas celui désiré. J'ai supprimé un maximum de nom et prénom.
Regarde le résultat.

Merci
JP
Voici le lien pour le fichier.
http://cjoint.com/?3Kzrs6T5Xww
Avatar
JP
Bonjour Daniel,
Effectivement Jacky m'a bien avancé, même au-delà de mes espérances . Comme tout est simple avec vous!!

Merci encore et à bientôt pour une nouvelle question.


JP
1 2 3