Forums XLPages

Tous les messages (JeanMarie)

« 1 2 3 4 5 6 7 ... 29 »
Re: macro copie cell
#31
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 01-12-2012 09h13
Bonjour Mahelnawe, Didier, le Forum
Essaye le code ci-dessous
Citation :

Option Explicit

Sub tp()
Dim I As Byte
Dim Lgn As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
Lgn = Range("J65536").End(xlUp).Row
With Worksheets("TabTrie")
    For I = 1 To 30
        .Range("J" & Lgn & ":Q" & Lgn).Offset(0, (I - 1) * 9).Copy
        Worksheets("TP").Range("S4").Offset(0, I).PasteSpecial Transpose:=True
    Next I
End With
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Pour simplifier toutes tes lignes, on utilise la copie transposée d'une plage de cellule, le "tranposer" transforme les données copiées sous forme verticale en forme horizontale, et d'une forme horizontale en forme verticale.
Après l'offset permet de faire les décalages nécessaires. 

@+Jean-Marie
Hors Ligne
Rapport   Haut 

Re: Extraire des chiffres
#32
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 01-12-2012 08h37
Bonjour Phil59110, Didier, le Forum

Dans un premier temps, tu dis dans ton fichier que les valeurs de la colonne B sont issues de formules, quelles est cette formule, il y aurait peut-être matière à trouver une meilleure solution.

Voici une solution par formule :
Dans la cellule C7 tu peux écrire cette formule :

Citation :

=GAUCHE(B7;CHERCHE("-";B7)-1

la fonction GAUCHE() retourne un nombre de caractères (Argument2) issus de la chaine (Argument1) en partant de la gauche.

la fonction CHERCHE() recherche le caractère "-" dans la chaine et en retourne sa position.


Pour la cellule D7 cela se complique, on ne peut pas utiliser ces deux fonctions, il pourvoir segmenter ta chaine.

Citation :
=SUBSTITUE(STXT($B7;CHERCHE("ù";SUBSTITUE($B7&REPT("-";15);"-";"ù";COLONNE(A1)))+1;2);"-";"")
La fonction REPT, elle retourne une suite de caractère (Argument1) dont la longueur est déterminé par la valeur de l'argument2, sont utilisation de la fonction à une importance, elle supprime une gestion d'erreur que l'on devrait mettre en place quand tous les segments de la chaine sont traités.
La fonction SUBSTITUE permet de remplacer une Xième occurrence d'un caractère dans une chaine, la valeur de l'occurrence à remplacer est donnée par la fonction COLONNE. Dans ton cas la fonction REMPLACER n'est pas utilisable.

Ensuite tu peux étirer cette formule sur la droite et étendre le tout vers le bas.

Deux points important, cela ne fonctionne correctement que si les valeurs à segmenter ne sont inférieures à 100. Les valeurs retournées sont des valeurs Texte

Pour finir une solution par VBA,
ci-dessous un code que tu mettras dans un module
Function decoupage(vChaine As String) As Variant
    decoupage = Split(vChaine & Application.Rept("-", 15), "-")
End Function

Ce code est une function qui retourne un tableau des valeurs segmentées de ta chaine.
Pour l'utiliser dans Excel, il faut pour cela :
     - Sélectionner une plage de cellules (C7:Q7)
     - Saisir la formule Decoupage(B7) et valider la formule par les touches Ctrl+Shift+Entrer
Après la validation tu dois voir des "{" "}" entourant la formule

La fonction Split permet le découpage de la chaine. l'utilisation de la fonction application.rept est utilisée pour supprimer une gestion d'erreur.

@+Jean-Marie


Pièce jointe:
xlsm Extraire.xlsm   [ Taille: 17.50 Ko - Téléchargements: 501 ]
Hors Ligne
Rapport   Haut 

Re: Problème formule conditions multiples
#33
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 24-11-2012 10h28
 Bonjour Sandy, Didier, le Forum

Essaye cette formule
=SI($T19<>"";"TERMINE";SI($P19<=AUJOURDHUI()+30;"ALERTE"))
Je n'ai pas repris la condition $P19() qui retournera un message d'erreur ...

@+jean-Marie
Hors Ligne
Rapport   Haut 

Re: Problème formule conditions multiples
#34
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 22-11-2012 03h44
Bonjour Sandy, Didier, le forum

Je crois que tu as eu un loupé dans l'écriture de ta formule dans le post, elle est incomplète. D'ailleurs à ce sujet, prend connaissance de cette page pour savoir comment coller une formule dans un post.

@+Jean-Marie
Hors Ligne
Rapport   Haut 

Re: Afficher les pics et creux et la periodicité des pics et creux automatiquement
#35
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 22-11-2012 03h39
Bonjour Serir, Didier, le forum

Si tu pouvais nous éclairer sur la résolution de ton problème, en nous donnant les valeurs que tu souhaites obtenir, cela nous faciliterait la tâche.

Pour commencer, si j'ai bien compris ton problème, je crois qu'un pic qu'il soit bas ou haut est déterminé en fonction de la valeur de la valeur précédente et de la valeur suivante. Si l'on regarde la valeur de la celluel C4, pour déterminer si c'est un pic bas, la formule suivante conviendrait.
=SI(C4<C5;SI(C4<C3;"X";"");"")
Pour un pic haut, il suffit de changer le comparateur.

Concernant la fréquence, peux-tu nous en dire plus, STP

@+Jean-Marie
Hors Ligne
Rapport   Haut 

Re: formule conditionnel avec+ de 3 conditions sur excel 2003
#36
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 18-11-2012 09h18
Bonjour Serge, Didier, le forum

Ton fichier n'est pas passé, mais ton post est assez explicite pour t'aiguiller sur cette page
http://www.mdf-xlpages.com/modules/sm ... ywords=mdf+conditionnelle

Tu y trouveras les explications et tout ce qu'il faut pour avoir des MFC multiples avec la version 2003 d'Excel

@+Jean-Marie
Hors Ligne
Rapport   Haut 

Re: devis excel
#37
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 15-11-2012 23h37
Bonsoir Chris, Didier, le forum

Bienvenue sur ce forum d'entraîde d'Excel, avant de te répondre sur le contenu de ton fichier, je dois te dire que j'ai vu ton fil sur le site Excel-downloads.com, ici nous n'apprécions pas les multi-posts sur différents site d'entraîde d'Excel. A l'avenir tu dois respecter notre choix.

Concernant la réponse donnée par Efgé, elle est bonne, et d'ailleurs je t'aurais donné la même solution. Donner une solution est une première chose, c'est en premier ce que cherche le demandeur. 

Si tu veux des explications sur la réponse donnée par Efgé, il serait bon d'expliquer ce que tu as compris, même si cela se résume à :
      - "je ne comprends pas la fonction",
      - "pourquoi indiquer une référence de cellule en premier argument"
      - "que fais la fonction"
      - "pourquoi doit-on l'utiliser"
      - "pourquoi doit-on passer par cette étape"
C'est en expliquant ce que l'on comprends pas, qu'il y a matière à obtenir une réponse la plus claire.

Normalement, il serait bon que ces questions soit postés sur le site d'Excel-downloads.com, mais si tu expliques ce que tu veux obtenir comme explications, je ferais mon possible pour y apporter mon aide.

@+Jean-Marie




Hors Ligne
Rapport   Haut 

Re: Double chrono dans un usf
#38
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 10-11-2012 09h38
Bonjour Fabrice, Didier, le forum

Mes connaissances en VBA sont plutôt faible, j'espère que je ne vais pas trop dire de bêtises.

Un premier point, tu utilises un bouton qui va avoir plusieurs actions différentes en fonction de l'étape ou tu te trouves, je pense personnellement que cela complique les choses, il vaut mieux avoir plusieurs boutons que l'on affiche ou que l'on masque ou que l'on rend provisoirement actif ou inactif.
J'ai donc créer 2 boutons "Stop", et 2 boutons "Reset" supplémentaires aux mêmes emplacements que les boutons Start.

Ensuite supprimé un module de gestion d'affichage du Timer, pour n'en avoir qu'un seul.

Modifier des déclarations de variables au niveau du module Timer
'Déclaration des variables, variable utilisable pour la globalité du projet
Public Temp1 As Double
Public Temp2 As Double
Public Depart1 As Double
Public Depart2 As Double
Public FinChrono1 As Byte
Public FinChrono2 As Byte
et ensuite modifier la sub de gestion de l'affichage des Timer, et supprimé tous les autres codes

Sub StartTimer()
'La gestion des chronos a été demandée
Do While (FinChrono1) = 0 Or (FinChrono2 = 0)
'tant que FinChrono1 ou que FinChrono2 est à 0
'cette boucle est exécutée
    If FinChrono1 = 0 Then
        'le chrono1 est lancé, actualisation du Timer1
        Temp1 = [now()] - Depart1
        UserForm1.Timer1.Caption = WorksheetFunction.Text(Temp1, "mm:ss.00")
    End If
    If FinChrono2 = 0 Then
        'le chrono2 est lancé, actualisation du Timer2
        Temp2 = [now()] - Depart2
        UserForm1.Timer2.Caption = WorksheetFunction.Text(Temp2, "mm:ss.00")
    End If
    DoEvents
Loop

End Sub
Cette Sub prend en charge la gestion globale des Timer

C'est dans le code du Userform1 qu'il y a le plus de modifications.

Rajout dans l'initialisation du Userform de l'affichage des boutons
Private Sub UserForm_Initialize()
    'Initialisation de l'userform
    Lap1.Enabled = False 'pour éviter de lancer le chrono par erreur
    Lap2.Enabled = False 'pour éviter de lancer le chrono par erreur
    Timer1.Caption = "00:00.00"
    Timer2.Caption = "00:00.00"
    'Affichage des boutons "Start"
    UserForm1.Go1.Visible = True
    UserForm1.Go2.Visible = True
    'Masque à l'affichage les autres Boutons
    UserForm1.Stop1.Visible = False
    UserForm1.Stop2.Visible = False
    UserForm1.Reset1.Visible = False
    UserForm1.Reset2.Visible = False
    'Initialisation à 1 des deux variables
    FinChrono1 = 1
    FinChrono2 = 1
End Sub

Rajout des codes Reset des 2 chronos
Private Sub Reset1_Click()
    'Clic sur le Bouton Reset du chrono1
    'RAZ des variables du chrono1
    Depart1 = 0
    UserForm1.Timer1.Caption = "00:00.00"
    'Masque le bouton Reset du chrono1 de l'affichage
    UserForm1.Reset1.Visible = False
    'Affichage du bouton Start du chrono1
    UserForm1.Go1.Visible = True
End Sub
Rajout des codes Stop des 2 chronos
Private Sub Stop1_Click()
    'Arrêt de la gestion du chrono1
    FinChrono1 = 1
    'Masque le bouton Stop du chrono1 de l'affichage
    UserForm1.Stop1.Visible = False
    'Affichage du bouton Reset du chrono1
    UserForm1.Reset1.Visible = True
    'Supprime la possibilité de cliquer sur le bouton RAZ du chrono1
    UserForm1.Lap1.Enabled = False
End Sub
De la modification des boutons Start
Private Sub Go1_Click()
'Sub pour le lancement du chrono1
'la variable Depart1 prend l'heure actuelle
Depart1 = [now()]
'Active la gestion du chrono1
FinChrono1 = 0
'Masque de l'affichage le bouton Start du chrono1
UserForm1.Go1.Visible = False
'Affichage du bouton Stop du chrono1
UserForm1.Stop1.Visible = True
'Active le bouton RAZ du chrono1
UserForm1.Lap1.Enabled = True
UserForm1.Lap1.SetFocus

If FinChrono2 = 1 Then
    'Lance la gestion du chrono, si celle-ci ne l'est pas
    StartTimer
End If

End Sub
Deux petites choses sur cette sub, La première instruction de cette sub est la mémorisation de l'heure machine dans la variable, pour coller au plus près de l'action du clic de l'utilisateur, les autres actions pouvant être effectuées pas la suite.
On ne relance pas la procédure StartTimer de gestion des Timers si celle-ci l'est déjà.

Modification du code de RAZ du timer, la RAZ est réduite à sa plus simple expression
Private Sub Lap1_Click()

'ici des lignes de codes seront rajoutées pour copier la valeur de la variable Temp1 dans un feuille du classeur

'ici on relance le chrono1
Depart1 = [now()]
End Sub

Modification de la procédure de fermeture du Userform
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'Le Ueserform n'est plus actif
'Suppression de la gestion des chronos
'La sub StatTimer s'arrêtera d'elle même
    FinChrono1 = 0
    FinChrono2 = 0
End Sub
C'est le passage des variables qui arrête la gestion des Timers,

Et pour finir la modification de fermeture du fichier
Private Sub Workbook_BeforeClose(Cancel As Boolean) '
    FinChrono1 = 0
    FinChrono2 = 0
End Sub

Voilà pour ce qui est des modifications de tes codes.

@+Jean-Marie 





Pièce jointe:
zip Fabrice.zip   [ Taille: 22.05 Ko - Téléchargements: 627 ]
Edité par JeanMarie le 10/11/2012 20:56:29
Hors Ligne
Rapport   Haut 

Re: calendrier en cliquant la cellule
#39
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 05-11-2012 22h48
Bonsoir Anouar, Didier, le forum

Pour afficher un calendrier, je connais bien une application, lol
Pour la télécharger le lien sur ce site :
http://www.mdf-xlpages.com/modules/TD ... oads/viewcat.php?cid=2#l1

Pour tout connaître de cette application :
http://www.mdf-xlpages.com/modules/smartsection/item.php?itemid=28

@+Jean-Marie 
Hors Ligne
Rapport   Haut 

Re: Besoin d'aide formule Excel
#40
Accro XLPages

Inscription: 09/05/2007
De Courcelles-les-Montbéliard

Messages: 286

Système d'exploitation:
PC & Mac
Version Excel utilisée:
Mac 2004 - 2011, et PC 2003 - 2010
Posté le : 02-11-2012 13h52
Re...

Je te propose la formule ci-dessous :
=SI(OU(R10<1;R10>7);0;Y10*CHOISIR(R10;50;25;12,5;6,25;3,12;1,56;0,78)%)
bon courage

@+jean-Marie
Hors Ligne
Rapport   Haut 

« 1 2 3 4 5 6 7 ... 29 »