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

Macros et VBA Excel Discussion :

problème suite au changement structure tableau


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 43
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2015
    Messages : 41
    Par défaut problème suite au changement structure tableau
    Bonjour et meilleurs voeux à tous,

    Mon code fonctionnait très bien lorsque j'avais mes données sur un seul bloc de colonnes, mais pour des raisons de meilleures lisibilités et de calcul, nous avons été obligé de scinder les repas de midi et les repas du soir, repas du midi de la cellule A1 à P38 et les repas du soir de la cellule A53 à R83.

    Voici les codes et fichiers pour une meilleure explication :
    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
    Sub B_ok_Click()
      '--- ' contrôles
      'For i = 1 To 16
        'If Not IsNumeric(Controls("nombre" & i)) Then
         ' MsgBox "Merci de saisir tous les champs"
         ' Me("nombre" & i).SetFocus
         ' Exit Sub
       ' End If
      'Next i
      '---transfert BD - MIDI
     
      [A38].End(xlUp).Offset(1, 0).Select
      ActiveCell = Me.Date1
     
      For i = 1 To 32
           ActiveCell.Offset(0, i) = CDbl(Controls("nombreMidi" & i))
       Next i
     
       '---transfert BD - SOIR
     
     Call TransfertBdSoir
     
    End Sub
     
    Sub TransfertBdSoir()
     
     [A83].End(xlUp).Offset(1, 0).Select
      ActiveCell = Me.Date1
     
      For j = 1 To 32
           ActiveCell.Offset(0, i) = CDbl(Controls("nombreSoir" & i))
       Next j
     
       raz
        Unload FormGestionRepas
     
    End Sub
    Images attachées Images attachées  

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Logiquement si la numérotation de vos contrôles va de 1 à 16 pour le midi et pour le soir, le code ci-dessous fonctionne.

    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
    Sub B_ok_Click()
     
     Dim I As Integer
     Dim Continuer As Boolean
     
     
      ' Contrôles
      '----------
      For I = 1 To 16
          Controls("nombreMidi" & I).BackColor = RGB(255, 255, 255)
          Controls("nombreSoir" & I).BackColor = RGB(255, 255, 255)
      Next I
      Continuer = True
     
      For I = 1 To 16
     
        If Not IsNumeric(Controls("nombreMidi" & I)) Then
          Continuer = False
          Controls("nombreMidi" & I).BackColor = RGB(255, 0, 0)
        End If
     
        If Not IsNumeric(Controls("nombreSoir" & I)) Then
           Continuer = False
           Controls("nombreSoir" & I).BackColor = RGB(255, 0, 0)
        End If
     
      Next I
     
      If Continuer = False Then
         MsgBox "Merci de saisir tous les champs !", vbCritical, "Contrôle des saisies"
         Exit Sub
      End If
     
     
      ' Transfert BD - MIDI
      '--------------------
      [A38].End(xlUp).Offset(1, 0).Select
       With ActiveCell
            .Value = Me.Date1
            For I = 1 To 16
                 .Offset(0, I) = CDbl(Controls("nombreMidi" & I))
            Next I
       End With
     
      ' Transfert BD - SOIR
      '--------------------
      [A83].End(xlUp).Offset(1, 0).Select
      With ActiveCell
            .Value = Me.Date1
            For I = 1 To 16
                .Offset(0, I) = CDbl(Controls("nombreSoir" & I))
            Next I
      End With
     
      Unload FormGestionRepas
     
    End Sub
    Cordialement.

Discussions similaires

  1. Google Analytics: problème suite à changement de serveur
    Par Mathieu92130 dans le forum APIs Google
    Réponses: 1
    Dernier message: 29/07/2010, 00h38
  2. problème d'initialisation d'un tableau de structure
    Par hamma2 dans le forum Débuter
    Réponses: 1
    Dernier message: 08/03/2010, 19h26
  3. problème d'affichage suite a une structure
    Par clampin dans le forum Débuter
    Réponses: 4
    Dernier message: 26/12/2007, 18h00
  4. Réponses: 2
    Dernier message: 27/11/2007, 10h42
  5. Problème de path suite à un changement de serveur
    Par Nyutom dans le forum Langage
    Réponses: 9
    Dernier message: 29/10/2007, 15h50

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