IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

inscription de valeurs calculées dans zone texte consecutive


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 31
    Points : 22
    Points
    22
    Par défaut inscription de valeurs calculées dans zone texte consecutive
    Bonjour,

    j' écris un code pour inscrire des valeurs calculées dans de petites zones texte consécutives dans des cellules.

    ces valeurs sont calculées en fonction du contenue des cellules sur la même ligne et d'autres cellules consécutives.

    le code pour chaque zone texte concernée est pratiquement le même en tenant compte du changement de ligne.

    le code j'ai écris marche mais c'est fastidieux de le dupliquer sur un grand nombre de zone texte.

    Pour infos j'ai les zones textes suivantes : zone texte 43; 44;.........81; puis 95; 96; 97; 99 ... 103
    ce qui m’intéresse c'est la partie de 43 ;44....81

    merci de votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
     
     Sub depassement_creneaux
     
     
    ActiveSheet.Shapes.range(Array("Rectangle 43")).Select
     
        If range("D4") = "8:00-9:00" And Round(((range("D7").Value) + range("E7") * 5) * 60 / range("D21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "9:" & Round(((range("D7").Value) + range("E7") * 5) * 60 / range("D21")) - 60
     
        If range("D4") = "9:00-10:00" And Round(((range("D7").Value) + range("E7") * 5) * 60 / range("F21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "11:" & Round(((range("D7").Value) + range("E7") * 5) * 60 / range("F21")) - 60
     
        If range("D4") = "10:00-11:00" And Round(((range("D7").Value) + range("E7") * 5) * 60 / range("H21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "12:" & Round(((range("D7").Value) + range("E7") * 5) * 60 / range("H21")) - 60
     
        If range("D4") = "11:00-12:00" And Round(((range("D7").Value) + range("E7") * 5) * 60 / range("J21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "13:" & Round(((range("D7").Value) + range("E7") * 5) * 60 / range("J21")) - 60
     
        If range("D4") = "12:00-13:00" And Round(((range("D7").Value) + range("E7") * 5) * 60 / range("L21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "14:" & Round(((range("D7").Value) + range("E7") * 5) * 60 / range("L21")) - 60
     
        If range("D4") = "13:00-14:00" And Round(((range("D7").Value) + range("E7") * 5) * 60 / range("N21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "15:" & Round(((range("D7").Value) + range("E7") * 5) * 60 / range("N21")) - 60
     
        If range("D4") = "14:00-15:00" And Round(((range("D7").Value) + range("E7") * 5) * 60 / range("P21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "16:" & Round(((range("D7").Value) + range("E7") * 5) * 60 / range("P21")) - 60
     
        If range("B4") = "15:00-16:00" And Round(((range("D7").Value) + range("E7") * 5) * 60 / range("R21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "16:" & Round(((range("D7").Value) + range("E7") * 5) * 60 / range("R21")) - 60
     
        If range("D4") = "16:00-17:00" And Round(((range("D7").Value) + range("E7") * 5) * 60 / range("T21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "lendemain"
     
     
     
         ActiveSheet.Shapes.range(Array("Rectangle 44")).Select
     
     
     
        If range("D4") = "8:00-9:00" And Round(((range("D8").Value) + range("E8") * 5) * 60 / range("D21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "9:" & Round(((range("D8").Value) + range("E8") * 5) * 60 / range("D21")) - 60
     
        If range("D4") = "9:00-10:00" And Round(((range("D8").Value) + range("E8") * 5) * 60 / range("F21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "11:" & Round(((range("D8").Value) + range("E8") * 5) * 60 / range("F21")) - 60
     
        If range("D4") = "10:00-11:00" And Round(((range("D8").Value) + range("E8") * 5) * 60 / range("H21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "12:" & Round(((range("D8").Value) + range("E8") * 5) * 60 / range("H21")) - 60
     
        If range("D4") = "11:00-12:00" And Round(((range("D8").Value) + range("E8") * 5) * 60 / range("J21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "13:" & Round(((range("D7").Value) + range("E7") * 5) * 60 / range("J21")) - 60
     
        If range("D4") = "12:00-13:00" And Round(((range("D8").Value) + range("E8") * 5) * 60 / range("L21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "13:" & Round(((range("D8").Value) + range("E8") * 5) * 60 / range("J21")) - 60
     
        If range("D4") = "13:00-14:00" And Round(((range("D8").Value) + range("E8") * 5) * 60 / range("N21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "14:" & Round(((range("D8").Value) + range("E8") * 5) * 60 / range("L21")) - 60
     
        If range("D4") = "14:00-15:00" And Round(((range("D8").Value) + range("E8") * 5) * 60 / range("P21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "15:" & Round(((range("D8").Value) + range("E8") * 5) * 60 / range("N21")) - 60
     
        If range("D4") = "15:00-16:00" And Round(((range("D8").Value) + range("E8") * 5) * 60 / range("R21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "16:" & Round(((range("D8").Value) + range("E8") * 5) * 60 / range("P21")) - 60
     
        If range("D4") = "16:00-17:00" And Round(((range("D8").Value) + range("E8") * 5) * 60 / range("T21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "lendemain"
     
     
     
     
     
     
     
     
     
        ActiveSheet.Shapes.range(Array("Rectangle 45")).Select
     
        If range("D4") = "8:00-9:00" And Round(((range("D9").Value) + range("E9") * 5) * 60 / range("D21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "9:" & Round(((range("D9").Value) + range("E9") * 5) * 60 / range("D21")) - 60
     
        If range("D4") = "9:00-10:00" And Round(((range("D9").Value) + range("E9") * 5) * 60 / range("F21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "10:" & Round(((range("D9").Value) + range("E9") * 5) * 60 / range("F21")) - 60
     
        If range("D4") = "10:00-11:00" And Round(((range("D9").Value) + range("E9") * 5) * 60 / range("H21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "11:" & Round(((range("D9").Value) + range("E9") * 5) * 60 / range("H21")) - 60
     
        If range("D4") = "11:00-12:00" And Round(((range("D9").Value) + range("E9") * 5) * 60 / range("J21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "12:" & Round(((range("D9").Value) + range("E9") * 5) * 60 / range("J21")) - 60
     
        If range("D4") = "12:00-13:00" And Round(((range("D9").Value) + range("E9") * 5) * 60 / range("L21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "13:" & Round(((range("D9").Value) + range("E9") * 5) * 60 / range("L21")) - 60
     
        If range("D4") = "13:00-14:00" And Round(((range("D9").Value) + range("E9") * 5) * 60 / range("N21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "14:" & Round(((range("D9").Value) + range("E9") * 5) * 60 / range("N21")) - 60
     
        If range("D4") = "14:00-15:00" And Round(((range("D9").Value) + range("E9") * 5) * 60 / range("P21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "15:" & Round(((range("D9").Value) + range("E9") * 5) * 60 / range("P21")) - 60
     
        If range("D4") = "15:00-16:00" And Round(((range("D9").Value) + range("E9") * 5) * 60 / range("R21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "16:" & Round(((range("D9").Value) + range("E9") * 5) * 60 / range("R21")) - 60
     
        If range("D4") = "16:00-17:00" And Round(((range("D9").Value) + range("E9") * 5) * 60 / range("T21")) > 60 Then Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "lendemain"
    end sub

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Utilise des boucles "For to".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Sub depassement_creneaux
     
       Dim VI as Integer	 
       Dim VJ as Integer	 
     
    	For V_J = 1 To 3
     
    		With ActiveSheet.Shapes.range(Array("Rectangle "&(VJ+42)).ShapeRange(1).TextFrame2.TextRange.Characters
     
    			For VI=1 To 9
    				If range("D4") = (VI+7) & ":00-" & (VI+8)&":00" And Round((Cells(6+VJ,4) + Cells(6+VJ,5)) * 5) * 60 / Cells(21,VI*2+2)) > 60 Then
    					If VI=9 Then
    						.Text = "lendemain"
    					Else
    						.Text = (VI+8)&":"  & Round((Cells(6+VJ,4) + Cells(6+VJ,5)) * 5) * 60 / Cells(21,VI*2+2)) - 60
    					End If
    				End If
    			Next VI
    		End With
    	Next V_J
     
     end sub
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 31
    Points : 22
    Points
    22
    Par défaut
    Bonjour menhir,

    depuis hier j'ai testé le code que tu as écris mais il m'affiche erreur de syntaxe.
    merci pour ton aide.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 31
    Points : 22
    Points
    22
    Par défaut
    sur la ligne 8 il manquais une parenthèse.

    ensuite sur la ligne 11.

    par ailleurs il me semble que les zone texte devrait être identifié comme des objets pour que ça marche

Discussions similaires

  1. [MySQL] enregistrer la valeur d'une zone texte dans la table
    Par chuspyto dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 28/03/2015, 13h27
  2. [AC-2000] Formule de calcul dans zone texte
    Par Christ79 dans le forum IHM
    Réponses: 6
    Dernier message: 09/10/2013, 07h51
  3. [AC-2003] envoyer la valeur d'une zone texte dans un label
    Par chuspyto dans le forum IHM
    Réponses: 4
    Dernier message: 06/11/2009, 07h38
  4. Valeur Null dans zones de textes
    Par parab dans le forum VBA Access
    Réponses: 16
    Dernier message: 03/03/2009, 17h40
  5. [Formulaire] Calcul dans zone de texte
    Par Thomzz dans le forum IHM
    Réponses: 8
    Dernier message: 30/06/2006, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo