27 réponses
dandypunk
Messages postés
831
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
11 septembre 2011
83
21 févr. 2008 à 21:36
21 févr. 2008 à 21:36
Salut loulou je n'ai pas eu le temps de m'occuper de ton problème.
Qui plus est, Eriic s'occupait de toi.
A priori, tu n'est pas en RSO. Donc tu dois le simuler. A savoir: considérant les services TOTO, TITI, TATA qui doivent chacun inscrire leur planning dans le tableau "Synthèse"
Essaye de créer une feuille cachée avec une ligne qui récupère la dernière ligne inscrite.
Tu ajoutes un espace. La prochaine fois, le bouton ajouter le tableau se remettra en place. C'est difficile d'être vraiment clair, mais l'idée est là.
J'attend un fichier d'avancement, afin que nous ne nous "marchions pas dessus".
Rassure toi ceux qui aident font aussi cela e nplus de leur boulot.
Qui plus est, Eriic s'occupait de toi.
A priori, tu n'est pas en RSO. Donc tu dois le simuler. A savoir: considérant les services TOTO, TITI, TATA qui doivent chacun inscrire leur planning dans le tableau "Synthèse"
Essaye de créer une feuille cachée avec une ligne qui récupère la dernière ligne inscrite.
Tu ajoutes un espace. La prochaine fois, le bouton ajouter le tableau se remettra en place. C'est difficile d'être vraiment clair, mais l'idée est là.
J'attend un fichier d'avancement, afin que nous ne nous "marchions pas dessus".
Rassure toi ceux qui aident font aussi cela e nplus de leur boulot.
dandypunk
Messages postés
831
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
11 septembre 2011
83
4 févr. 2008 à 14:28
4 févr. 2008 à 14:28
A la place de
Sheets("Synthèse").Select
Range("A12:IU41").Select
ActiveSheet.Paste
Range("a1").Select
Essayes
Worksheets("Synthèse").Paste Destination:=Worksheets("Synthèse").Range("A1") 'Pour coller à partir de A1
Sheets("Synthèse").Select
Range("A12:IU41").Select
ActiveSheet.Paste
Range("a1").Select
Essayes
Worksheets("Synthèse").Paste Destination:=Worksheets("Synthèse").Range("A1") 'Pour coller à partir de A1
Bonjour,
Merci pour ton aide Dandypunk mais ce n'est pas ce que je veux. Ton code m'a aidé, et appris des choses.
En faite si tu veux, j'ai un tableau sur feuille 2, il tient sur les lignes A12 : Iu41. Et je voudrai changer ça, car si un jour il devait tenir sur 42 ?
Je voudrai le rendre variable. Ma solution du nombre est plus compliquée que je ne le pensais.
Aurais tu un moyen pour sélectionner les lignes utilisés sachant que comme c'est un planning, il y a des colonnes qui n'ont rien d'écrit mais une case coloré...et surtout je voudrai qu'il arrête la sélection des lignes quand il y a 2 lig d'affilé vide.
Aidez moi svp !!!
Loulou
Merci pour ton aide Dandypunk mais ce n'est pas ce que je veux. Ton code m'a aidé, et appris des choses.
En faite si tu veux, j'ai un tableau sur feuille 2, il tient sur les lignes A12 : Iu41. Et je voudrai changer ça, car si un jour il devait tenir sur 42 ?
Je voudrai le rendre variable. Ma solution du nombre est plus compliquée que je ne le pensais.
Aurais tu un moyen pour sélectionner les lignes utilisés sachant que comme c'est un planning, il y a des colonnes qui n'ont rien d'écrit mais une case coloré...et surtout je voudrai qu'il arrête la sélection des lignes quand il y a 2 lig d'affilé vide.
Aidez moi svp !!!
Loulou
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Sub hide()
'A1:c50 correspond a ta plage de cellule que tu souhaite verifier
Range("A1:c50").Select
For Each o In Selection
If o.Value = "" Then
o.EntireRow.Hidden = True
End If
Next
End Sub
Je voudrai essayer autre chose, cacher les lignes vides en cliquant sur un bouton. Mais je souhaiterai qu'il ne cache que lorsqu'il y a 2 linges vides l'une au dessus de l'autre.
J'avais pensé rajouté au if : (O.value +1)="" then
Quand pensez vous ?? Car ça ne marche pas ?
loulou
'A1:c50 correspond a ta plage de cellule que tu souhaite verifier
Range("A1:c50").Select
For Each o In Selection
If o.Value = "" Then
o.EntireRow.Hidden = True
End If
Next
End Sub
Je voudrai essayer autre chose, cacher les lignes vides en cliquant sur un bouton. Mais je souhaiterai qu'il ne cache que lorsqu'il y a 2 linges vides l'une au dessus de l'autre.
J'avais pensé rajouté au if : (O.value +1)="" then
Quand pensez vous ?? Car ça ne marche pas ?
loulou
dandypunk
Messages postés
831
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
11 septembre 2011
83
5 févr. 2008 à 12:48
5 févr. 2008 à 12:48
On va traiter les choses une par une.
Ta feuille ressemble à cela https://www.cjoint.com/?cfmTlKGpUK
mais jamais à cela https://www.cjoint.com/?cfmWfL0TtE
Ta feuille ressemble à cela https://www.cjoint.com/?cfmTlKGpUK
mais jamais à cela https://www.cjoint.com/?cfmWfL0TtE
https://www.cjoint.com/?cfntNC6AS3
Dandypunk merci de ton attention
Pour mieux se comprendre, je t'ai mis sur cjoint un fichier rar car même en supprimant des onglets mon fichier est gros !!
Tu as le tableau 1 : synthèse
Tu as le tableau 2 : LS // service du pdg
Une colonne client, projet, travaux (description), R pour responsable, i pour intervenant et aprés le calendrier, mois et jour, et dans les cases on y met une couleur.
En fait , les couleurs correspondent :
Rouge : absence
bleu : travail confirmé au bureau
vert : rendez-vous confirmé en clientèle
jaune : tâche prévisionnelle (bureau ou clientèle)
Ensuite, on met "M" ou "A" dans la case si ne concerne que la 1/2 journée. (Certains colorient en hachuré pour le rendre plus visible)
Et donc pour différencier les projets et client en cours pour un service, ils espacent d'une ligne et donc dans ma sélection ça me gêne pour délimiter le tableau.
voilà j'espère qu'on se comprendra mieux
loulou
Dandypunk merci de ton attention
Pour mieux se comprendre, je t'ai mis sur cjoint un fichier rar car même en supprimant des onglets mon fichier est gros !!
Tu as le tableau 1 : synthèse
Tu as le tableau 2 : LS // service du pdg
Une colonne client, projet, travaux (description), R pour responsable, i pour intervenant et aprés le calendrier, mois et jour, et dans les cases on y met une couleur.
En fait , les couleurs correspondent :
Rouge : absence
bleu : travail confirmé au bureau
vert : rendez-vous confirmé en clientèle
jaune : tâche prévisionnelle (bureau ou clientèle)
Ensuite, on met "M" ou "A" dans la case si ne concerne que la 1/2 journée. (Certains colorient en hachuré pour le rendre plus visible)
Et donc pour différencier les projets et client en cours pour un service, ils espacent d'une ligne et donc dans ma sélection ça me gêne pour délimiter le tableau.
voilà j'espère qu'on se comprendra mieux
loulou
dandypunk
Messages postés
831
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
11 septembre 2011
83
6 févr. 2008 à 20:36
6 févr. 2008 à 20:36
Désollé d'avoir été si long à répondre, mais ces deux jous ont été très chargés pour moi. (Je ne vais pas me plaindre d'avoir des clients.)
1) Je crois avoir compris ce que tu désirais.
2) J'ai légèrement modifié ton code de Sub hide
Je te joint déjà le fichier modifié (.zip) https://www.cjoint.com/?cguA7YLQP2
Le code modifié se trouve dans le module 10 et dans ThisWorbook
1) J'ai pris une base de 41 comme demandé au départ, mais avec ton tableau qui va jusque 43, il suffira de modifier cette valeur
2) Le variables et constantes de type PUBLIC ne 'appliquent qu'au module en cours. L'idéal est donc de copier toutes tes macros dans un seul module, sinon, l'initialisation ne sera pas prise en compte.
3) Afin d'éviter, de cacher des lignes (procédure hide()), je vais essayer de m'inspirer de cela pour la sélection, dans le style iDerniereLIgnevalide; Je n'ai pas encore eu le temps de me pencher sur le problème.
4) Je serai absent de la toile jusque mardi, voire mercredi et je ne sais pas si demain j'aurai le temps.
En espérant que cela t'aura aidé, je reste à ta disposition.
1) Je crois avoir compris ce que tu désirais.
2) J'ai légèrement modifié ton code de Sub hide
Je te joint déjà le fichier modifié (.zip) https://www.cjoint.com/?cguA7YLQP2
Le code modifié se trouve dans le module 10 et dans ThisWorbook
1) J'ai pris une base de 41 comme demandé au départ, mais avec ton tableau qui va jusque 43, il suffira de modifier cette valeur
2) Le variables et constantes de type PUBLIC ne 'appliquent qu'au module en cours. L'idéal est donc de copier toutes tes macros dans un seul module, sinon, l'initialisation ne sera pas prise en compte.
3) Afin d'éviter, de cacher des lignes (procédure hide()), je vais essayer de m'inspirer de cela pour la sélection, dans le style iDerniereLIgnevalide; Je n'ai pas encore eu le temps de me pencher sur le problème.
4) Je serai absent de la toile jusque mardi, voire mercredi et je ne sais pas si demain j'aurai le temps.
En espérant que cela t'aura aidé, je reste à ta disposition.
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
6 févr. 2008 à 21:20
6 févr. 2008 à 21:20
Bonsoir tout le monde,
je n'ai pas pris le temps de regarder les classeurs mais pour répondre à ta 1ère question tu peux te fabriquer ton range ainsi :
i=42
range("A12:IU" & i).cequetuveux
il suffit de concatener
eric
je n'ai pas pris le temps de regarder les classeurs mais pour répondre à ta 1ère question tu peux te fabriquer ton range ainsi :
i=42
range("A12:IU" & i).cequetuveux
il suffit de concatener
eric
dandypunk
Messages postés
831
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
11 septembre 2011
83
6 févr. 2008 à 21:22
6 févr. 2008 à 21:22
Exact, j'avais oublié le &. Cela simplifie un peut le code.
Merci pour lui.
Merci pour lui.
Pour elle !!
Oui en effet ça m'aide merci
Je vais voir ça aujourd'hui.
Je souhaite en effet que le nombre de ligne soit variables mais le mieux c'est que l'utilisateur sache combien il en a utilisé. Et je pense mettre un compteur, en bas de la première colonne, un count. et je prendrai ce chiffre comme repère pour tout !!
Je pense ça va marcher !! merci de vos aides, je pense pas avoir été clair, mais je mettrai le tableau une fois fini !!
Oui en effet ça m'aide merci
Je vais voir ça aujourd'hui.
Je souhaite en effet que le nombre de ligne soit variables mais le mieux c'est que l'utilisateur sache combien il en a utilisé. Et je pense mettre un compteur, en bas de la première colonne, un count. et je prendrai ce chiffre comme repère pour tout !!
Je pense ça va marcher !! merci de vos aides, je pense pas avoir été clair, mais je mettrai le tableau une fois fini !!
dandypunk
Messages postés
831
Date d'inscription
jeudi 3 janvier 2008
Statut
Membre
Dernière intervention
11 septembre 2011
83
7 févr. 2008 à 11:59
7 févr. 2008 à 11:59
Désolé pour le pour lui il est vrai que tu avais écrit rouillée
Ce n'est pas grave !!
De ton code, je voudrai arriver à faire, que le compteur qui est notre information sur la sélection du nombre de ligne soit conservé et utilisé dans les autres codes pour tout le temps savoir le nombre de lignes.
Je ne sais plus comment, je faisais avant pour avoir cette donnée d'accessible à tout. Là où la procédure est appelé, on aura le icompteurligne ? Qu’en penses tu ?
Sub Selection_ls()
'
' Macro enregistrée le 07/02/2008 par
'
Dim bLignePrecedenteVide As Boolean
Dim iCompteurLigne As Integer
Dim sCelluleAVerifier As String
bLignePrecedenteVide = False
For iCompteurLigne = 15 To iLigneMax 'Les infos intéressantes commencent ligne 15
sCelluleAVerifier = ("A&iCompteurLigne")
Range(sCelluleAVerifier).Select
If (Selection.Value = "") And (bLignePrecedenteVide = False)
Then ‘ la cellule est vide et la ligne précédente non
bLignePrecedenteVide = True ' on passe que la ligne est vide pour le reste du code
' on continue d'incrémenter le compteur, car une seule ligne vide doit être comptée !
Else ‘ la cellule n’est pas vide et 'bLignePrecedenteVide est à vrai
If (Selection.Value = "") ‘ si la ligne est vide
Then 'bLignePrecedenteVide est donc vrai et fin sélection
IcompteurLigne = IcompteurLigne – 1 ‘ On enlève 1 au compteur pour enlever la deuxième ligne vide.
Else
bLignePrecedenteVide = False
End If
End If
Next
'
End Sub
De ton code, je voudrai arriver à faire, que le compteur qui est notre information sur la sélection du nombre de ligne soit conservé et utilisé dans les autres codes pour tout le temps savoir le nombre de lignes.
Je ne sais plus comment, je faisais avant pour avoir cette donnée d'accessible à tout. Là où la procédure est appelé, on aura le icompteurligne ? Qu’en penses tu ?
Sub Selection_ls()
'
' Macro enregistrée le 07/02/2008 par
'
Dim bLignePrecedenteVide As Boolean
Dim iCompteurLigne As Integer
Dim sCelluleAVerifier As String
bLignePrecedenteVide = False
For iCompteurLigne = 15 To iLigneMax 'Les infos intéressantes commencent ligne 15
sCelluleAVerifier = ("A&iCompteurLigne")
Range(sCelluleAVerifier).Select
If (Selection.Value = "") And (bLignePrecedenteVide = False)
Then ‘ la cellule est vide et la ligne précédente non
bLignePrecedenteVide = True ' on passe que la ligne est vide pour le reste du code
' on continue d'incrémenter le compteur, car une seule ligne vide doit être comptée !
Else ‘ la cellule n’est pas vide et 'bLignePrecedenteVide est à vrai
If (Selection.Value = "") ‘ si la ligne est vide
Then 'bLignePrecedenteVide est donc vrai et fin sélection
IcompteurLigne = IcompteurLigne – 1 ‘ On enlève 1 au compteur pour enlever la deuxième ligne vide.
Else
bLignePrecedenteVide = False
End If
End If
Next
'
End Sub
J'exécute ce code pas à pas, et tout ce fait ok, le compteur s'arrête bien à 23, ce qui correspond bien à mon test mais en revanche le logiciel bug, comme si j'étais en boucle infernal. Peux tu m'aider ?
Sub Selection_ls()
'
' Macro enregistrée le 07/02/2008 par
'
Dim bLignePrecedenteVide As Boolean
Dim iCompteurLigne As Integer
Dim sCelluleAVerifier As String
bLignePrecedenteVide = False
iLigne_max_ls = 50
For iCompteurLigne = 15 To iLigne_max_ls 'Les infos intéressantes commencent ligne 15
sCelluleAVerifier = "A" + CStr(iCompteurLigne)
Range(sCelluleAVerifier).Select
If (Selection.Value = "") And (bLignePrecedenteVide = False) Then ' la cellule est vide et la ligne précédente non
bLignePrecedenteVide = True ' on passe que la ligne est vide pour le reste du code
' on continue d'incrémenter le compteur, car une seule ligne vide doit être comptée !
Else ' la cellule n'est pas vide et 'bLignePrecedenteVide est à vrai
If (Selection.Value = "") Then 'bLignePrecedenteVide est donc vrai et fin sélection
iCompteurLigne = iCompteurLigne - 1 ' On enlève 1 au compteur pour enlever la deuxième ligne vide.
Else
bLignePrecedenteVide = False
End If
End If
Next
'
End Sub
Sub Selection_ls()
'
' Macro enregistrée le 07/02/2008 par
'
Dim bLignePrecedenteVide As Boolean
Dim iCompteurLigne As Integer
Dim sCelluleAVerifier As String
bLignePrecedenteVide = False
iLigne_max_ls = 50
For iCompteurLigne = 15 To iLigne_max_ls 'Les infos intéressantes commencent ligne 15
sCelluleAVerifier = "A" + CStr(iCompteurLigne)
Range(sCelluleAVerifier).Select
If (Selection.Value = "") And (bLignePrecedenteVide = False) Then ' la cellule est vide et la ligne précédente non
bLignePrecedenteVide = True ' on passe que la ligne est vide pour le reste du code
' on continue d'incrémenter le compteur, car une seule ligne vide doit être comptée !
Else ' la cellule n'est pas vide et 'bLignePrecedenteVide est à vrai
If (Selection.Value = "") Then 'bLignePrecedenteVide est donc vrai et fin sélection
iCompteurLigne = iCompteurLigne - 1 ' On enlève 1 au compteur pour enlever la deuxième ligne vide.
Else
bLignePrecedenteVide = False
End If
End If
Next
'
End Sub
j'ai oublié je mets :
return iCompteurLigne
aprés icompteurligne = icompteurligne - 1
sinon je ne sortait pas effectivement
mais je ne sais plus voir même on peut dire pas, renvoyer une valeur !! j'ai honte !!
merci de votre aide
return iCompteurLigne
aprés icompteurligne = icompteurligne - 1
sinon je ne sortait pas effectivement
mais je ne sais plus voir même on peut dire pas, renvoyer une valeur !! j'ai honte !!
merci de votre aide
oublier ces deux derniers post !!
Grâce à ton aide dandypunk, je m'y suis remise.
reste comment on écrit ça :
Range("A"&i_ls:"iu"&i_ls).Select ça ne marche pas trop
loulou
Grâce à ton aide dandypunk, je m'y suis remise.
reste comment on écrit ça :
Range("A"&i_ls:"iu"&i_ls).Select ça ne marche pas trop
loulou
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
8 févr. 2008 à 18:55
8 févr. 2008 à 18:55
Bonsoir,
le : doit ête dans les ""
Range("A" & i_ls ":iu" & i_ls).Select
mais je te rappelle qu'au début tu voulais sélectionner A12:IUxx
Avec ta formule tu ne sélectionneras que la ligne i_ls
eric
le : doit ête dans les ""
Range("A" & i_ls ":iu" & i_ls).Select
mais je te rappelle qu'au début tu voulais sélectionner A12:IUxx
Avec ta formule tu ne sélectionneras que la ligne i_ls
eric
Bonjour,
Oui au début j'avais besoin de ça. Mais maintenant pour les autres tableaux, qui se mettent aprés le premier, je ne peux plus savoir où cela se termine et où commencer le tableau .
merci mais ça ne fonctionne pas
Range("A & i_ls :IU & i_ls").Select
Oui au début j'avais besoin de ça. Mais maintenant pour les autres tableaux, qui se mettent aprés le premier, je ne peux plus savoir où cela se termine et où commencer le tableau .
merci mais ça ne fonctionne pas
Range("A & i_ls :IU & i_ls").Select
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 250
11 févr. 2008 à 21:10
11 févr. 2008 à 21:10
Bonsoir,
Range("A" & i_ls & ":IU" & i_ls").Select
Mais vu que tu n'as qu'une variable i_ls tu ne selectionneras qu'une ligne
eric
Range("A" & i_ls & ":IU" & i_ls").Select
Mais vu que tu n'as qu'une variable i_ls tu ne selectionneras qu'une ligne
eric
bonjour
oui désolée, en fait j'ai été trop vite
Range("A" & i_ls & ":IU" & i_lsa").Select
il y a une deuxième variable !!
merci je vais tester !!!
loulou
oui désolée, en fait j'ai été trop vite
Range("A" & i_ls & ":IU" & i_lsa").Select
il y a une deuxième variable !!
merci je vais tester !!!
loulou