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 :

VBA excel : Outils de test utile : cet outillage méthodologique est centré sur la gestion de fichiers


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Par défaut VBA excel : Outils de test utile : cet outillage méthodologique est centré sur la gestion de fichiers
    bonjour


    En phase de test je rencontre des difficultés liées à la production de fichier txt

    quand je fais du test (pas à pas) je n'ai aucune signalisation d'erreurs et rien ne se passe

    je joins mon fichier en fin de mail


    je rencontre une difficulté équivalente avec l'ajout d'une entrée pour un classeur (nouvelle entrée pour combobox)

    ====> pas d'info


    ma 3è demande est différente
    elle consiste à avoir une macro que l'on peut rendre accessible à tous pour réinitiialiser le projet

    merci

    cordialement

    michel

    code :
    P
    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    ublic Sub RECAP_DISPO_BEN()
    Rem ********************************************************************************************
    Rem   Creation tableau faisant une synhèse des 1/2 journées de  disponibilités des bénévoles****
    Rem ********************************************************************************************
    Rem
    Rem        Tableau :
    Rem                ordonnée (colonne) : tous les bénévoles triés (géré par "i" (0 à nombre de bénévole - 1))
    Rem                abscisse (ligne)   : les 10 demis journées "j" de 0 à 9
    Rem                cellule
    Rem        Tâche 0 : calcul nombre de bénévoles
    Rem        Tache 1  : tri
    Rem        tâche 2   : mise à jour du tableau en traitant les ("CheckBox26") à ("CheckBox35") pour chaque bénévole
    Rem        tache 3 creation fichier avec tableau
    Rem
    Rem
    Rem
    Dim ws As Worksheet
    Set ws = Sheets("BASE De GESTION")
    Rem
    Rem                                        Tâche 0 : calcul nombre de bénévoles
    Rem
    Dim calcul_limite_table_ben As Integer
    Dim ligne_benevole_competence As Integer
     
    With Worksheets("BASE DE GESTION")
    calcul_limite_table_ben = ws.Range("A" & Rows.Count).End(xlUp).Row
    End With
    calcul_limite_table_ben = calcul_limite_table_ben + 1
    Rem
    Rem tri
    Rem
    With Worksheets("BASE DE GESTION")
        .sort.SortFields.Clear
        .sort.SortFields.Add key:=Range("A1:A" & calcul_limite_table_ben), sorton:=xlSortOnValues, order:=xlAscending, dataoption:=xlSortNormal
           With .sort
                .SetRange Range("A1:AZ" & calcul_limite_table_ben)
                .Header = xlYes
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
        End With
     End With
     Rem
     Rem                                     déclaration tableau
     Rem
    Dim nom As String       ' j=0
    Dim prenom As String    ' j= 1
    Dim check_26 As String  ' j = 2
    Dim check_27 As String  ' j = 3
    Dim check_28 As String  ' j = 4
    Dim check_29 As String  ' j = 5
    Dim check_30 As String  ' j = 6
    Dim check_35 As String  ' j = 7
    Dim check_31 As String  ' j = 8
    Dim check_32 As String  ' j =  9
    Dim check_33 As String  ' j = 10
    Dim check_34 As String   ' j = 11
    'Dim tableau((12), (12), (4), (4), (4), (4), (4), (4), (4), (4), (4), (4)
     
    'Dim tableau(nom(12), prenom(12), check_26(1), check_27(1), check_28(1), check_29(1), check_30(1), check_35(1), check_31(1), check_32(1), check_33(1), check_34(1))
    Dim tableau(0 To 30, 0 To 12)
     
    Rem     100 bénévoles (limitenon utilisé dans la création du tableau
    Rem      12 champs ( nom, prénom et 10 demi jounées
    Rem        Tâche 2   : effacement de toutes les valeurs : inutile car on recree tout
    Rem
    Rem
    Rem-----Chargement du tableau -----------------
    Dim i As Integer
    For i = 0 To (calcul_limite_table_ben - 1)
                  nom = ws.Cells((i + 2), "B")
                  prenom = ws.Cells((i + 2), "C")
                  check_26 = ws.Cells((i + 2), "S")
                  check_27 = ws.Cells((i + 2), "T")
                  check_28 = ws.Cells((i + 2), "U")
                  check_29 = ws.Cells((i + 2), "V")
                   check_30 = ws.Cells((i + 2), "W")
                   check_35 = ws.Cells((i + 2), "X")
                   check_31 = ws.Cells((i + 2), "Y")
                   check_32 = ws.Cells((i + 2), "Z")
                   check_33 = ws.Cells((i + 2), "AA")
                   check_34 = ws.Cells((i + 2), "AB")
        tableau(i, 1) = nom
        tableau(i, 2) = prenom
        tableau(i, 3) = check_26
        tableau(i, 4) = check_27
        tableau(i, 5) = check_28
        tableau(i, 6) = check_29
        tableau(i, 7) = check_30
        tableau(i, 8) = check_35
        tableau(i, 9) = check_31
        tableau(i, 10) = check_32
        tableau(i, 11) = check_33
        tableau(i, 12) = check_34
     Next i
     
         MsgBox "début impression"
    '--------------------------------------------
    '--------------------------------------------
    Dim j As Integer '
    Dim sRepertoire As String
    Dim sNomFichier As String
    Dim sTableau As Variant
     
     
     
    ' Création d'un fichier texte avec la commande WRITE
    ' et saut de ligne dans le fichier texte
     
     
       Dim iFile As Integer
       Dim str As Variant
       Dim zpourdebug As String
       Dim ar As Variant
       sRepertoire = "C:\utilisateurs\recapappliben\"      '// doit terminer avec un "\"
       sNomFichier = "Dispo_ben.txt"    '// nom du fichier
     
       On Error Resume Next
       Kill sRepertoire & sNomFichier   '// effacer le fichier existant
       iFile = FreeFile
     
       Open sRepertoire & sNomFichier For Output As #iFile    '// crée le fichier texte
       ar = tableau()
            '// valeurs dans un array (plus rapide)
         For i = 1 To UBound(ar, 1)      '// boucle sur les lignes
          str = ""
       For j = 1 To UBound(ar, 2)              '// boucle sur les colonnesstr = tableau(i, j) & vbTab    '// valeurs séparées par tabulations
                                     ' str = str&ar(i,j)&vbTab
                                      'str = ar(i, j) & vbTab
        str = ar(i, j) & vbTab
          Next j
         Write #iFile, str(i)              '// écrire dans le fichier
                                                       'zpourdebug = str(i)
                                                         ' Debug.Print zpourdebug
                                                      '  Print #iFile, str
        MsgBox "    NOM     ", vbTab
       Next i
        Write #iFile, str(i)
                                                    'zpourdebug = str(i)
                                                     '   Debug.Print zpourdebug
     
       Close #iFile                     '// Fermer le fichier
      ' On Error GoTo 0
    End Sub

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 197
    Par défaut
    Comme ça, pour le point 1, je dirais de remplacer les :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Write #iFile, str(i)
    par des :
    Et pour les autres points, il faudrait que tu développes un peu, je n'ai pas tout compris.

  3. #3
    Membre confirmé
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Par défaut test
    Citation Envoyé par EddiGordo Voir le message
    Comme ça, pour le point 1, je dirais de remplacer les :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Write #iFile, str(i)
    par des :
    Et pour les autres points, il faudrait que tu développes un peu, je n'ai pas tout compris.

    merci j'ai pris en compte ta remarque

    pour le point 2 je créerais une nouvelle discussion

    et point 3 je veux permettre à l'utilisateur bloqué de faire une réinitialisation comme un testeur le fait avec exécution et réinitialisation

    merci

  4. #4
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, toujours utile : Manipulation des fichiers en VBA

  5. #5
    Expert éminent 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
    Par défaut
    Citation Envoyé par michelj64 Voir le message
    quand je fais du test (pas à pas) je n'ai aucune signalisation d'erreurs et rien ne se passe
    C'est normal quand on masque les erreurs au lieu de les corriger.

    Commence par virer de ton code la ligne :
    Tu pourras y voir plus clair.

    Petit commentaire au passage : ça fait plus de 20 ans qu'on utilise plus "Rem" pour les commentaires dans du Basic.
    Il est moins lourd d'utiliser à la place l'apostrophe :
    https://msdn.microsoft.com/fr-fr/lib.../gg278825.aspx

  6. #6
    Membre confirmé
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Par défaut TEST SUITE
    BONJOURet merci

    j'ai supprimé le resume et cela me fait avancer

    sur le kill du fichier j'ai une erreur 53 fichier introuvable
    j"ai creé un répertoire (même nom ) avec un fichier (même nom) et j'ai la même erreur

    je dois vérifier

    mais en fonctionnement normal je devrais récupérer l'erreur 53
    si je laisse passer j'ai une erreur 56 chemin introuvable sur l'open

    je me pose une question sur la pertinence, car il semblerais normal de ne pas avoir d'open ????

    enfin j'ai une erreur 53 sur le write (fichier introuvable)


    j'avance à petits pas

  7. #7
    Expert éminent 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
    Par défaut
    A mon avis, tu t'embêtes beaucoup pour rien à vouloir passer par des fichiers séquentiels.
    A ta place, je me contenterais de faire un Worksheet.SaveAs en mettant comme format de fichier xlTextWindows ou xlCSV et tout serait réglé en une seule ligne de code.
    https://msdn.microsoft.com/fr-fr/lib.../ff195820.aspx
    https://msdn.microsoft.com/fr-fr/lib.../ff198017.aspx

  8. #8
    Membre confirmé
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Par défaut
    Citation Envoyé par kiki29 Voir le message
    Salut, toujours utile : Manipulation des fichiers en VBA
    je vais faire cela ce soir (en prenant le conseil de menhir)

    michel

    Citation Envoyé par Menhir Voir le message
    A mon avis, tu t'embêtes beaucoup pour rien à vouloir passer par des fichiers séquentiels.
    A ta place, je me contenterais de faire un Worksheet.SaveAs en mettant comme format de fichier xlTextWindows ou xlCSV et tout serait réglé en une seule ligne de code.
    https://msdn.microsoft.com/fr-fr/lib.../ff195820.aspx
    https://msdn.microsoft.com/fr-fr/lib.../ff198017.aspx
    merci

    je m'y mets ce soir (pour des raisons de parc de pc, je prendrais normalement type = 6 (CSV 97/2003)


    michel


    8 juin 8h45
    j'ai bien créé un feuillet mais
    je n'arrive à copier mon tableau sur un feuillet

    par prudence j'ai balayé tous les feuillets et je crée bien des fichiers exel (que je récupère en csv)

    !!!!!blocage !!!

    c'est lié à la structure (array) du tableau)



    je vais la recréer dans le bon feuillet)m

    a

  9. #9
    Membre confirmé
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Par défaut suite
    bonjour

    je suis désolé mais après un très grand nombre d'essais (grand = euphémisme) je pars en erreur quand je copie des cellule depuis un feuillet 1 vers le feuillet 2

    (j'ai besoin de cette opération pour faire des stats

    Ce n'est pas habituel mais je demande à un(e) d'entre vous de m'aider

    erreur au début du chargement du tableau (erreur 9,1024,....

    merci


    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
    Public Sub RECAP_DISPO_BEN()
    Rem ********************************************************************************************
    Rem   Creation tableau faisant une synhèse des 1/2 journées de  disponibilités des bénévoles****
    Rem ********************************************************************************************
    Rem
    Rem        Tableau :
    Rem                ordonnée (colonne) : tous les bénévoles triés (géré par "i" (0 à nombre de bénévole - 1))
    Rem                abscisse (ligne)   : les 10 demis journées "j" de 0 à 9
    Rem                cellule
    Rem        Tâche 0 : calcul nombre de bénévoles
    Rem        Tache 1  : tri
    Rem        tâche 2   : mise à jour du tableau en traitant les ("CheckBox26") à ("CheckBox35") pour chaque bénévole
    Rem        tache 3 creation fichier avec tableau
    Rem
    Rem
    Rem
    Dim ws As worksheet
    Set ws = Sheets("BASE De GESTION")
     
     
    Rem                                        Tâche 0 : calcul nombre de bénévoles
    Rem
    Dim calcul_limite_table_ben As Integer
    Dim ligne_benevole_competence As Integer
     
    With Worksheets("BASE DE GESTION")
     
     
    calcul_limite_table_ben = ws.Range("A" & Rows.Count).End(xlUp).Row
    End With
    calcul_limite_table_ben = calcul_limite_table_ben + 1
    Rem
    Rem tri
    Rem
     With Worksheets("BASE DE GESTION")
        .sort.SortFields.Clear
        .sort.SortFields.Add key:=Range("A1:A" & calcul_limite_table_ben), sorton:=xlSortOnValues, order:=xlAscending, dataoption:=xlSortNormal
           With .sort
                .SetRange Range("A1:AZ" & calcul_limite_table_ben)
                .Header = xlYes
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
        End With
     End With
     Rem
     Rem                                     déclaration tableau
     Rem
     'Sheets("Feuil1").Range("A1:A10").copy _
     'Destination:=Worksheets("Feuil2").Range("E5")
     Dim wt As worksheet
     Set wt = Worksheets("recap_infos")
     '
    Dim nom As String       ' j=0
    Dim prenom As String    ' j= 1
    Dim check_26 As String  ' j = 2
    Dim check_27 As String  ' j = 3
    Dim check_28 As String  ' j = 4
    Dim check_29 As String  ' j = 5
    Dim check_30 As String  ' j = 6
    Dim check_35 As String  ' j = 7
    Dim check_31 As String  ' j = 8
    Dim check_32 As String  ' j =  9
    Dim check_33 As String  ' j = 10
    Dim check_34 As String   ' j = 11
    'Dim tableau((12), (12), (4), (4), (4), (4), (4), (4), (4), (4), (4), (4)
     
    'Dim tableau(nom(12), prenom(12), check_26(1), check_27(1), check_28(1), check_29(1), check_30(1), check_35(1), check_31(1), check_32(1), check_33(1), check_34(1))
    Dim tableau(0 To 30, 0 To 12)
     
    Rem     100 bénévoles (limitenon utilisé dans la création du tableau
    Rem      12 champs ( nom, prénom et 10 demi jounées
    Rem        Tâche 2   : effacement de toutes les valeurs : inutile car on recree tout
    Rem
    Rem
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Rem-----Chargement du tableau -----------------
    Set ws = Sheets("BASE De GESTION")
    Dim i As Integer
    Application.EnableEvents = False
    Dim worksheet As Variant
    'With Worksheets("Feuil1")
    For i = 0 To (calcul_limite_table_ben - 1
    )
    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
    '   Range("B").Copy Sheets("recap_infos").Range("nom")
                 ' Sheets("Feuil1").Range("B").Copy Destination:=Worksheets("feuil12").Range("nom")
                    ws.Cells((i + 2), "B").Copy Destination:=wt.Range("nom")
                    ws.Cells((i + 2), "C").Copy Destination:=wt.Range("prenom")
                    ws.Cells((i + 2), "S").Copy Destination:=wt.Range("check26")
                    ws.Cells((i + 2), "T").Copy Destination:=wt.Range("check27")
                    ws.Cells((i + 2), "U").Copy Destination:=wt.Range("check28")
                    ws.Cells((i + 2), "V").Copy Destination:=wt.Range("check29")
                    ws.Cells((i + 2), "W").Copy Destination:=wt.Range("check30")
                    ws.Cells((i + 2), "X").Copy Destination:=wt.Range("check35")
                    ws.Cells((i + 2), "Y").Copy Destination:=wt.Range("check31")
                    ws.Cells((i + 2), "Z").Copy Destination:=wt.Range("check32")
                    ws.Cells((i + 2), "AA").Copy Destination:=wt.Range("check33")
                    ws.Cells((i + 2), "AB").Copy Destination:=wt.Range("check34")
                 ' nom = ws.Cells((i + 2), "B")
                  'prenom = ws.Cells((i + 2), "C")
                 ' check_26 = ws.Cells((i + 2), "S")
                 ' check_27 = ws.Cells((i + 2), "T")
                 ' check_28 = ws.Cells((i + 2), "U")
                 ' check_29 = ws.Cells((i + 2), "V")
                 '  check_30 = ws.Cells((i + 2), "W")
                 '  check_35 = ws.Cells((i + 2), "X")
                 '  check_31 = ws.Cells((i + 2), "Y")
                 '  check_32 = ws.Cells((i + 2), "Z")
                 '  check_33 = ws.Cells((i + 2), "AA")
                 '  check_34 = ws.Cells((i + 2), "AB")
        tableau(i, 1) = nom
        tableau(i, 2) = prenom
        tableau(i, 3) = check_26
        tableau(i, 4) = check_27
        tableau(i, 5) = check_28
        tableau(i, 6) = check_29
        tableau(i, 7) = check_30
        tableau(i, 8) = check_35
        tableau(i, 9) = check_31
        tableau(i, 10) = check_32
        tableau(i, 11) = check_33
        tableau(i, 12) = check_34
        Next i
      '  End With
      Application.EnableEvents = True
     
         MsgBox "début impression"
    '--------------------------------------------
    '--------------------------------------------
    Dim j As Integer '
    Dim sRepertoire As String
    Dim sNomFichier As String
    Dim sTableau As Variant

    '==========================================

    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
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
     
     
     
    ''==================================================
    ' Création d'un fichier exel à partir des infos du tableau
     
    '    il faut que tableau soit mis dans un feuillet
     
    '    puis transformation de ce feuillet en csv
     
     
    '   Dim iFile As Integer
      ' Dim str As Variant
     '
     '  Dim ar As Variant
      ' sRepertoire = "C:\utilisateurs\recapappliben\"      '// doit terminer avec un "\"
       'sNomFichier = "Dispo_ben.xls"    '// nom du fichier
                                                                                  '  On Error Resume Next
     
     
    '
    ' creation fichier devant être transformé en exel
    Application.CutCopyMode = True
     
    Set ws = Worksheets("BASE DE GESTION")
    Set wt = Worksheets("recap_infos")
     
    Dim tabexel() As Script
            '// valeurs dans un array (plus rapide)
     For i = 2 To UBound(tableau, 1) '// boucle sur les lignes
     
     For j = 1 To UBound(tableau, 2)              '// boucle sur les colonnesstr = tableau(i, j) & vbTab    '// valeurs séparées par tabulations
     
    ' wt.Range(wt.Cells(j), wt.Cells(i, j)).Copy ws.Cells(i, j)
       tabexel(j) = tableau(i, j)
     
      Next j
     ' wt.Range(wt.Cells(i), wt.Cells(i, j)).Copy ws.Cells(i, j)
       tabexel(i) = tableau(i, j)
     
      Next i
      wt.Range(wt.Cells(i), wt.Cells(i, j)).Copy ws.Cells(i, j)
    '               tabexel(i) = tableau(i, j)
     
     
     
    Application.CutCopyMode = False
     
     
    MsgBox "fin"
      Call Eclater
      MsgBox "fin"
     
     
     
    End Sub
    '
     
     
        Sub Eclater()
       Dim feuille As Variant
       Dim newbook As Variant
       Dim tabexel() As Script
     
     
            Set newbook = Workbooks.Add
     
            With newbook
     
                'recap_infos ActiveWorkbook.Sheets
                 .Copy feuil12!tableau()
     
                .Title = feuil12.Name
     
                .Subject = feuil12.Name
     
     
                .SaveAs Filename:="feuil12.recap_infos.xls"
     
            End With
     
     
     
     
        End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/05/2014, 18h26
  2. [VBA EXCEL]: Savoir si une mise en forme conditionnelle est active
    Par ADONET dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/01/2007, 14h59
  3. Réponses: 2
    Dernier message: 14/09/2006, 18h53
  4. VBA-EXCEL- TEST si fichier ouvert
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 11/08/2006, 15h20
  5. [VBA-Excel] test de server
    Par fixmi dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/01/2006, 17h12

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