Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/11/2011, 02h06   #1
Invité de passage
 
Homme Maurice Mundinger
Retraite
Inscription : décembre 2010
Messages : 42
Détails du profil
Informations personnelles :
Nom : Homme Maurice Mundinger
Localisation : Canada

Informations professionnelles :
Activité : Retraite
Secteur : Bâtiment

Informations forums :
Inscription : décembre 2010
Messages : 42
Points : 4
Points : 4
Par défaut problème de formule

Bonjour a tous,,

Me revoila avec mes problemes tordus!!!!!!!!!!!!!!!!!

Voila le probleme:

Entrer en B13 le numero de debut de numero de semaine ( reporte en A5),ici 6
En A18,B18,C18,D18, le numero des semaines de conge, se mettront en ligne 1 par VRAI
En A7,B7,C7,A8,B8,C8,A9,B9,C9, des valeurs qui reviennent respectivement dans l'ordre A B C
Si valeur A18=10, on trouve en E1=VRAI ( car E1 est au-dessus du chiffre 10 en ligne 5)
Des qu'on repere une valeur VRAI en ligne 1, les valeurs en ligne 7,8,9 se mettent en"co"
Et donc la valeur des cellules F7,F8,F9 est changee pour permettre de garder la suite logique A,B,C
Le probleme est que si on a en A8=10 et B8=11????? Ou A18=9 et B18=11
Sachant quand meme qu'on n'aura pas plus que deux numeros de semaine de suite en valeur pour les conges

Alors voila je n'arrive pas a faire cette formuledeja quelques jours de prise de tete

Merci de vouloir se pencher sur cet epineux probleme ( epineux pour moi!!!!!!!!!!!!)


Encore merci a vous tous
momo68610 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2011, 11h53   #2
Membre actif
 
Homme
Ressources humaines
Inscription : janvier 2011
Messages : 172
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ressources humaines
Secteur : Bâtiment

Informations forums :
Inscription : janvier 2011
Messages : 172
Points : 166
Points : 166
Bonjour momo68610,

pour que je puisse peut etre t'aide, je te demande de me fournir un exemple sur un fichier joint avec si possible une coloration des cellules ou figurent ton pb et un explicite de ce que tu veux avoir comme résultat.

Cordialement.
Gestionnaire_rh est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 08/11/2011, 14h57   #3
Invité de passage
 
Homme Maurice Mundinger
Retraite
Inscription : décembre 2010
Messages : 42
Détails du profil
Informations personnelles :
Nom : Homme Maurice Mundinger
Localisation : Canada

Informations professionnelles :
Activité : Retraite
Secteur : Bâtiment

Informations forums :
Inscription : décembre 2010
Messages : 42
Points : 4
Points : 4
Bonjour Gestionnaire et tout le forum,

merci a toi de t'interesser a mon probleme, je mets un exemplaire de fichier en piece jointe pour etre mieux explicite, avec couleurs et explicatif sur la feuille1

Pour info, je travaille sur Office 2010, mais j'ai sauve-garde le fichier en format 2003 pour le rendre accessible a plus de monde, donc si la solution est en format 2010 pas de probleme; et aussi si quelqu'un prefere la solution en macro cela ne me derange pas non plus

Merci d'avance
Fichiers attachés
Type de fichier : xls Essai.xls (33,0 Ko, 17 affichages)
momo68610 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2011, 16h36   #4
Membre actif
 
Homme
Ressources humaines
Inscription : janvier 2011
Messages : 172
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ressources humaines
Secteur : Bâtiment

Informations forums :
Inscription : janvier 2011
Messages : 172
Points : 166
Points : 166
Salut momo68610,

je ne comprend pas toujours le résultat que tu veux avoir:
Citation:
Le probleme est que si on a en A8=10 et B8=11????? Ou A18=9 et B18=11,Sachant quand meme qu'on n'aura pas plus que deux numeros de semaine de suite en valeur pour les congés.
bon modifier en A8, b8 ou c8 va changer juste votre paramétrage ( tu peut mettre ce que tu veux, il y'a pas de formule), mais si a18=9 et b18=11, dit moi ce que tu veux avoir comme résultat et a quelle cellule, et puis si comprend bien que au max c'est de 02 semaines de suite autoriser pour les "co".

Cordialement.
Gestionnaire_rh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2011, 17h42   #5
Invité de passage
 
Homme Maurice Mundinger
Retraite
Inscription : décembre 2010
Messages : 42
Détails du profil
Informations personnelles :
Nom : Homme Maurice Mundinger
Localisation : Canada

Informations professionnelles :
Activité : Retraite
Secteur : Bâtiment

Informations forums :
Inscription : décembre 2010
Messages : 42
Points : 4
Points : 4
Bonjour Gestionnaire,merci de te pencher sur mon probleme;

Mon souci est le suivant:

Si les valeurs changent en : A18 et jusqu"a D18 ( valeurs qui representent des numeros de semaine de conge)

ma rotation de produit en A7,8,9 et B7,8,9 et C7,8,9, est decale sachant que cette rotation est reguliere et du type : A,B,C,A,B,C,A,B,C etc autant de fois a partir du chiffre de debut saisi en (B13) et jusqu'a 52 et donc le numero de conge choisi marque dans la rotation de distribution( ligne 7,8,9) "co"

Suis-je plus comprehensible?????!!!!!!!!!!!!!!
momo68610 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2011, 18h50   #6
Invité de passage
 
Homme Maurice Mundinger
Retraite
Inscription : décembre 2010
Messages : 42
Détails du profil
Informations personnelles :
Nom : Homme Maurice Mundinger
Localisation : Canada

Informations professionnelles :
Activité : Retraite
Secteur : Bâtiment

Informations forums :
Inscription : décembre 2010
Messages : 42
Points : 4
Points : 4
Pour complement d'info, je dirais qu'il suffit de se focaliser sur la ligne 7, a savoir decaler les valeurs de la suite A,B,C en fonction des conges choisis en ligne 18...... Ensuite il n'y aura qu'a tirerla formule vers le bas pour les autes lignes(8 et 9).........simple idee qui m'est venue

Aussi les chiffres en ligne 3 ne sont ici que pour ref, pour savoir combien de cellules, au cas ou on choisit en B13( sem de debut) un autre chiffre que 1, devront avoir la formule

Merci
momo68610 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2011, 00h13   #7
Membre actif
 
Homme
Ressources humaines
Inscription : janvier 2011
Messages : 172
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ressources humaines
Secteur : Bâtiment

Informations forums :
Inscription : janvier 2011
Messages : 172
Points : 166
Points : 166
Par défaut solution incomplète

Salut momo68160,

en rajoutant un commandbutton et on lui affectant le code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub CommandButton1_Click()
 
   For macol = 1 To 52
   For ligne = 7 To 9
   maligne = 1
Range(Cells(ligne, maligne), Cells(ligne, macol)).FormulaLocal = "=SIERREUR(SI(EQUIV($A$18;$A$5:$AZ$5;0)=COLONNE();""co"";SI(EQUIV($B$18;$A$5:$AZ$5;0)=COLONNE();""co"";SI(EQUIV($C$18;$A$5:$AZ$5;0)=COLONNE();""co"";SI(EQUIV($D$18;$A$5:$AZ$5;0)=COLONNE();""co"";""""))));"""")"
 For Each Cell In Range(Cells(ligne, maligne), Cells(ligne, macol))
 If Cell.Value = "" And ligne = 7 Then Cell.Value = "A"
 If Cell.Value = "" And ligne = 8 Then Cell.Value = "AA"
 If Cell.Value = "" And ligne = 9 Then Cell.Value = "AAA"
 
   Next Cell
   Next ligne
   Next macol
 
End Sub
tu n'auras besoin que des formules de la ligne 5 et bien sur la cellule b13, après tu renseigne tes cellules de A18 a D18 et tu clique sur le button.
je te tiendrais au courant si j'arrive a l’améliorer.

Cordialement.
Gestionnaire_rh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2011, 00h16   #8
Membre actif
 
Homme
Ressources humaines
Inscription : janvier 2011
Messages : 172
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ressources humaines
Secteur : Bâtiment

Informations forums :
Inscription : janvier 2011
Messages : 172
Points : 166
Points : 166
salut momo68160,

je te tiendrais au courant si j'arrive a le finaliser, je débute avec le vba

cordialement.
Gestionnaire_rh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2011, 12h40   #9
Membre actif
 
Homme
Ressources humaines
Inscription : janvier 2011
Messages : 172
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ressources humaines
Secteur : Bâtiment

Informations forums :
Inscription : janvier 2011
Messages : 172
Points : 166
Points : 166
Bonjour momo68160,

je pense que cette façon ton pb est résolu, dit moi si tu souhaite d'autre modifs.

Cordialement
Fichiers attachés
Type de fichier : xls Essai.xls (49,5 Ko, 8 affichages)
Gestionnaire_rh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2011, 15h32   #10
Invité de passage
 
Homme Maurice Mundinger
Retraite
Inscription : décembre 2010
Messages : 42
Détails du profil
Informations personnelles :
Nom : Homme Maurice Mundinger
Localisation : Canada

Informations professionnelles :
Activité : Retraite
Secteur : Bâtiment

Informations forums :
Inscription : décembre 2010
Messages : 42
Points : 4
Points : 4
Bonjour,gestionnaire et tout le forum,

Merci a toi, Gestionnaire,pour cet essai mais cela ne repond pas tout a fait a ma demande

Si tu mets, par exemple, en periode de conge ( ligne 18) comme valeur pour A18=3,B18=6,c18=8, D18 vide, il faudrait:

En colonne D: D7=C;D8=CC;D9=CCC et donc en E7=A;E8=AA;E9=AAA
En colonne F: co exact
En colonne G: G7=B;G8=BB;G9=BBB

Et ainsi de suite, afin de toujours respecter l'ordre chronologique de distribution qui est A,B,C

Tu vois ce que je veux dire??!!!!

Encore merci de ton temps, c'est vraiment super de ta part
momo68610 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2011, 15h53   #11
Invité de passage
 
Homme Maurice Mundinger
Retraite
Inscription : décembre 2010
Messages : 42
Détails du profil
Informations personnelles :
Nom : Homme Maurice Mundinger
Localisation : Canada

Informations professionnelles :
Activité : Retraite
Secteur : Bâtiment

Informations forums :
Inscription : décembre 2010
Messages : 42
Points : 4
Points : 4
Re Bonjour Gestionnaire,

Je viens de voir un autre petit detail dont je voulais te parler:

Si B13=42, en ligne 5 on va de 42 a 52

Donc si tu mets A18=43;B18=45;C18=50;C18=vide

La distribution en ligne 7 a 9 devrait s'arreter a partir du moment ou on atteind la valeur 52 en ligne 5; est-ce possible????

En tout cas je pense qu'on avance bien, merci a toi
momo68610 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 09h25   #12
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 693
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 693
Points : 1 445
Points : 1 445
Bonjour,

Voici une autre solution pour parvenir au résultat.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Option Explicit
Private Sub CommandButton1_Click()
Dim col As Integer, CptrTravail As Byte
Dim MonTableau(7 To 9, 0 To 2) As String
MonTableau(7, 0) = "A"
MonTableau(7, 1) = "B"
MonTableau(7, 2) = "C"
MonTableau(8, 0) = "AA"
MonTableau(8, 1) = "BB"
MonTableau(8, 2) = "CC"
MonTableau(9, 0) = "AAA"
MonTableau(9, 1) = "BBB"
MonTableau(9, 2) = "CCC"
 
With Worksheets("Feuil1")
    Rows("7:9").ClearContents
    For col = 1 To 53 - .Cells(13, 2)
        'Si le numéro de semaine correspond à une semaine de congé, on inscrit "co" dans les cellules correspondantes en lignes 7, 8 et 9
        If .Cells(5, col) = .Cells(18, 1) Or .Cells(5, col) = .Cells(18, 2) Or _
        .Cells(5, col) = .Cells(18, 3) Or .Cells(5, col) = .Cells(18, 4) Then
            .Cells(7, col) = "co"
            .Cells(8, col) = "co"
            .Cells(9, col) = "co"
        Else
        'sinon, on renseigne les cellules des lignes 7, 8 et 9 en respectant l'ordre A, B et C.
            CptrTravail = CptrTravail + 1
            .Cells(7, col) = MonTableau(7, (CptrTravail + 2) Mod 3)
            .Cells(8, col) = MonTableau(8, (CptrTravail + 2) Mod 3)
            .Cells(9, col) = MonTableau(9, (CptrTravail + 2) Mod 3)
        End If
    Next col
End With
End Sub
Cordialement .
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 20h19   #13
Invité de passage
 
Homme Maurice Mundinger
Retraite
Inscription : décembre 2010
Messages : 42
Détails du profil
Informations personnelles :
Nom : Homme Maurice Mundinger
Localisation : Canada

Informations professionnelles :
Activité : Retraite
Secteur : Bâtiment

Informations forums :
Inscription : décembre 2010
Messages : 42
Points : 4
Points : 4
Super

Merci a toi gFZT82, exactement ce que je voulais, me reste plus qu'a l'adapter a mon programme!!!!!!!!!! je pense que je devrais y arriver, mais je vais laisser le forum ouvert avent de le marquer comme resolu au cas ou!!!!!

D'ailleurs, dans un futur proche!!!!!! j'aimerais te recontacter gFZT82 afin de mieux comprendre la demarche de la macro, mais pour l'instant je suis un peu presse de l'adapter et l'envoyer a ma fille qui s'en sert pour son entreprise.....

Encore un grand merci a toi gFZT82 et a Gestionnaire_rh pour vous etre penche sur mon probleme, ainsi que tout les gens du forum qui s'y sont interresses de pret ou de loin

Petite question: lors d'une reponse comment faire pour attacher la fenetre deroulante au texte?

Merci a tous
momo68610 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 20h43   #14
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 693
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 693
Points : 1 445
Points : 1 445
Bonsoir,

Voici un lien qui t'apportera quelques réponses
http://club.developpez.com/regles/#L3.5
Voir en particulier les balises Code.

A la prochaine
Cordialement.
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 21h45   #15
Invité de passage
 
Homme Maurice Mundinger
Retraite
Inscription : décembre 2010
Messages : 42
Détails du profil
Informations personnelles :
Nom : Homme Maurice Mundinger
Localisation : Canada

Informations professionnelles :
Activité : Retraite
Secteur : Bâtiment

Informations forums :
Inscription : décembre 2010
Messages : 42
Points : 4
Points : 4
Merci gFZT82 du lien

Premiere question concernant la macro: si je veux faire demarrer "A","B","C" en colonne D au lieu de A???
Est-ce la formule : MonTableau(7, 0) = "A" et donc a remplacer par MonTableau(7, 3) = "A"?
J'ai fait un essai mais cela ne marche pas??????!!!!!!!
Peux-tu me depanner?

Merci
momo68610 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 22h23   #16
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 693
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 693
Points : 1 445
Points : 1 445
Tu peux décaler en modifiant la ligne 17

Code :
    For col = 4 To 53 - .Cells(13, 2)
Cordialement
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 22h24   #17
Membre actif
 
Homme
Ressources humaines
Inscription : janvier 2011
Messages : 172
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ressources humaines
Secteur : Bâtiment

Informations forums :
Inscription : janvier 2011
Messages : 172
Points : 166
Points : 166
Bonjour momo68168, gFZT82

pour une modif juste sur la colonne de démarrage tu modifié sur cette ligne en remplaçant le 1 par 4:

Code :
 For col = 4 To 53 - .Cells(13, 2)
Cordialement.
Gestionnaire_rh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 22h42   #18
Invité de passage
 
Homme Maurice Mundinger
Retraite
Inscription : décembre 2010
Messages : 42
Détails du profil
Informations personnelles :
Nom : Homme Maurice Mundinger
Localisation : Canada

Informations professionnelles :
Activité : Retraite
Secteur : Bâtiment

Informations forums :
Inscription : décembre 2010
Messages : 42
Points : 4
Points : 4
Bonjour ou bonsoir a Gestionnaire_rh et gFZT82,

merci de la reponse, c'est ce que je voulais

Merci a vous deux
momo68610 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2011, 15h47   #19
Invité de passage
 
Homme Maurice Mundinger
Retraite
Inscription : décembre 2010
Messages : 42
Détails du profil
Informations personnelles :
Nom : Homme Maurice Mundinger
Localisation : Canada

Informations professionnelles :
Activité : Retraite
Secteur : Bâtiment

Informations forums :
Inscription : décembre 2010
Messages : 42
Points : 4
Points : 4
Bonjour le forum, question pour Gestionnaire_rh ou gFZT82, dans la ligne 17:

For col = 1 To 53 - .Cells(13, 2), quelle est la fonction de .Cells(13,2)???

Il me semble que par cette fonction on repere la valeur de "debut de sem" en ligne 13 colonne 2 ???? et si oui, si je change cette valeur de place, E13 cela nous donnerait ligne 13 clonne 5 donc: .Cells(13,5) non?????

Ceci afin de pouvoir adapter a mon programme; si ce n'est pas cela, quelle fonction repere la valeur en B13 ( date de debut)????

Merci d'avance
momo68610 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/11/2011, 16h17   #20
Membre actif
 
Homme
Ressources humaines
Inscription : janvier 2011
Messages : 172
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ressources humaines
Secteur : Bâtiment

Informations forums :
Inscription : janvier 2011
Messages : 172
Points : 166
Points : 166
Bonjour momo68160,

ok c'est bon pour ta proposition sur cette ligne, le code sera:
Code :
    For col = 1 To 53 - .Cells(13, 5)
mais les formules sur ta ligne 5 sont utiliser, tu doit changer la cellule A5 par :
Code :
A5=E5        ' au lieu de A5=B5
Cordialement.
Gestionnaire_rh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h15.


 
 
 
 
Partenaires

Hébergement Web