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 :

Fonction Split ne reconnait pas les valeurs


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2013
    Messages : 3
    Par défaut Fonction Split ne reconnait pas les valeurs
    Bonjour,
    Pour un projet informatique nous devons créer un sudoku, nous travaillons actuellement sur la fonction "generer", donc des permutations sur une grille initiale.
    Dans une feuille "Programmation" nous avons inclus la grille résolue initiale sur laquelle nous faisons les permutations.
    La fonction "split" qui nous permettrait de diviser la grille en 9 colonnes ne semble pas reconnaitre ces colonnes.
    Voila notre code

    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
     
    Option Explicit
     
    Sub Generer()                        'Génère la grille de sudoku
    Application.ScreenUpdating = False   'Désactive l'affichage de la grille à chaques nouvelles permutations
    Sheets("Programmation").Visible = 1  'Active la visibilité de la feuille "Programmation" pour nous permettre de réaliser la fonction
    Sheets("Programmation").Select
        Dim nbdif As Integer             'Nombre de cases à masquer en fonction du niveau de difficulté
        Dim nbcase As Integer            'Variable de 1 à nbdif pour réaliser la fonction masquer
        Dim i As Byte                    'Ligne de la grille finale
        Dim j As Byte                    'Colonne de la grille finale
        Dim var As Byte                  'Variable aléatoire de permutation
        Dim attribution() As String      'Texte
        Dim pas As Byte                  'Permet de garder les petites colonnes et lignes par groupe de 3 lors des permutations
        Dim grille() As Variant          'Grille provisoire pour chaques permutations
        Dim grillefinale() As Variant    'Grille finale recopiée dans la feuille de jeu
        Dim memoireune As Byte
        Dim memoiredeux As Byte
     
     
     
        pas = 0                             'Permutations des petites colonnes
     
        For pas = 0 To 6 Step 3
        'pas prend comme valeur 0, 3 ou 6
        i = 0
        memoireune = 0
        var = 0
        memoiredeux = 0
     
            For i = 1 + pas To 3 + pas
                While var = memoireune Or var = memoiredeux       'A chaque colonne est attribué un réel entre 1 et 3
                    Randomize                                     'Permet au générateur de nombre aléatoires de démarrer à chaque fois sur une valeur différente
                    var = Int((3 * Rnd) + 1)                      'Retourne un nombre aléatoire entre la valeur max et la valeur min: Int((valeur max -valeur min +1) * Rnd + valeur min)
                Wend
     
            attribution() = Split(" ca cb cc cd ce cf cg ch ci ") '"Split" permet de découper la chaîne de caractères
            grille = Range(attribution(var + pas))                'La colonne est affectée à la variable matrice
            Range(Cells(9, i + 14), Cells(8 + UBound(grille, 1), i + 14)) = grille
     
            If i = 1 + pas Then                                   'Empêche la répétition d'une colonne
                memoireune = var
                Else: memoiredeux = var
            End If
     
            Next i
        Next pas
    Cf fichier joint pour la feuille programmation

    Merci beaucoup
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Créer une fonction : Renvoi pas les valeurs
    Par diego45 dans le forum MATLAB
    Réponses: 1
    Dernier message: 25/07/2014, 19h04
  2. Visual Basic ne reconnait pas les fonctions de base
    Par mdromzee dans le forum VB.NET
    Réponses: 3
    Dernier message: 28/05/2010, 01h22
  3. Réponses: 7
    Dernier message: 22/04/2010, 15h45
  4. Réponses: 3
    Dernier message: 19/10/2009, 16h52
  5. Réponses: 6
    Dernier message: 30/01/2008, 20h46

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