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 :

[VBA-E] Creation de worksheet ayant pour nom un parametre d'entrée


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Avril 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1
    Par défaut [VBA-E] Creation de worksheet ayant pour nom un parametre d'entrée
    Bonjour je me prenomme Romain je suis en 1ere année de BTS Info de developpement.
    Nos profs nous on confier un petit trucs a develloper sous excel pour soulager une personne de l'administration du lycée. En gros ma partie doit admettre un parametre d'entrée acquis par une inputbox, la variable aceuillant cette valeur est declarer en public pas d'inquietude si vous ne la voyez pas dans mon code, la personne devra saisir une date de la forme [JourMois] (exemple: 2703 pour le 27 mars), puis le code devra aller chercher dans un classeur contenant des nom&prenoms les secteur auquels sont affecter certaine personnes (informatique, administration .....)puis ouvrir et avoir sur le focus sur le classeur portant le nom du secteur auquel appartient la personne sur laquelle on a le focus, puis dans ce classeur voir si il existe une fuille portant comme nom la date entrée en paramettre, si oui alors c'est cool, si non alors on copie la feuille selon un modele present dans un autre classeur et on la colle en premiere position

    J'espere que c'est pas trop confus

    Je vous donne le code, le probleme c'est qu'il boucle :s

    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
    Sub RechSecteur()
    Dim i As Integer, j As Integer, k As Integer
    Dim Nom As String, Secteur As String, Classeur As String, contenance As String, default As String
    Dim OK As Boolean
    Dim laplage As Range, p As Range
    Dim lacellule As Range
    Dim lafeuille As Worksheet
     
    i = 9
    j = 2
    k = 2
    OK = False
     
    Set lacellule = Workbooks("conso.xls").Worksheets("photocopieur").Range("A" & k)
     
    While lacellule.Value <> ""
        contenance = lacellule.Value
        contenance = contenance & "_imp_" & date1 & ".xls"
        Set laplage = Workbooks(contenance).Worksheets(1).Range("B" & i)
     
        While laplage.Value <> ""
     
            Nom = laplage.Value
            default = Workbooks("Conso.xls").Worksheets("Listing intervenant").Range("B" & j).Value
     
            If Nom = default Then
     
                Secteur = Workbooks("Conso.xls").Worksheets("Listing intervenant").Range("C" & j).Value
                Classeur = Secteur & ".xls"
     
                For Each lafeuille In Workbooks(Classeur).Worksheets
                    If lafeuille.Name = date1 Then
                        OK = True
                    End If
                Next
     
                If Not OK Then
                    Workbooks("Conso.xls").Worksheets("Modele").Copy _
                        before:=Workbooks(Classeur).Worksheets(1)
                End If
     
     
            Else
                MsgBox ("ERREUR secteur inexistant en tant que Classeur, veuillez le creer puis recommencez")
            End If
     
        Wend
        i = i + 1
        j = j + 1
        k = k + 1
    Wend
     
    End Sub
    Je vous remercie des futurs reponse

    A bientot


    PS: j'ai lu les recommandations, et j'espere que vous ne prendrez pas ma demande tel un foutage de gu*le

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    salut. probablement ici, une premiere erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If Not OK Then
    Workbooks("Conso.xls").Worksheets("Modele").Copy before:=Workbooks(Classeur).Worksheets(1)
    End If
    Else
    MsgBox ("ERREUR secteur inexistant en tant que Classeur, veuillez le creer puis recommencez")
    End If
    sinon si on suit l'ordre de tes boucle
    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
    Set lacellule = Workbooks("conso.xls").Worksheets("photocopieur").Range("A" & k)
            While lacellule.Value <> ""
            contenance = lacellule.Value
            contenance = contenance & "_imp_" & date1 & ".xls"
            Set laplage = Workbooks(contenance).Worksheets(1).Range("B" & i)
                        While laplage.Value <> ""
                        Nom = laplage.Value
                        default = Workbooks("Conso.xls").Worksheets("Listing intervenant").Range("B" & j).Value
                        If Nom = default Then
                        Secteur = Workbooks("Conso.xls").Worksheets("Listing intervenant").Range("C" & j).Value
                        Classeur = Secteur & ".xls"
                                    For Each lafeuille In Workbooks(Classeur).Worksheets
                                    If lafeuille.Name = date1 Then
                                    OK = True
                                    End If
                                    Next
                        If Not OK Then
                        Workbooks("Conso.xls").Worksheets("Modele").Copy before:=Workbooks(Classeur).Worksheets(1)
                        End If
                        Else
                        MsgBox ("ERREUR secteur inexistant en tant que Classeur, veuillez le creer puis recommencez")
                        End If
                        Wend
            i = i + 1
            j = j + 1
            k = k + 1     
       Wend
    End Sub
    on s'aperçoit que pour la premiere, en bleu, la cellule examinéée est lacellule, et que sa position progresse en fonction de k
    pour la deuxieme,
    c'est la plage qui progresse en fonction de i
    defaut en fonction de j et secteur en fonction de j
    mais la progression de ces variables n'est pas dans la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Wend
            i = i + 1
            j = j + 1

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/03/2015, 11h36
  2. Remplir un champ ayant pour nom une VALEUR de chaine
    Par Elijah37 dans le forum VBA Access
    Réponses: 2
    Dernier message: 15/04/2008, 11h21
  3. Réponses: 3
    Dernier message: 26/08/2007, 15h35
  4. [XSLT][XPATH] Nombre d'élèment ayant pour nom..
    Par SONY30 dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 26/04/2007, 13h49
  5. Réponses: 3
    Dernier message: 26/02/2007, 10h52

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