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 :

Activer le fichier créé


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 134
    Par défaut Activer le fichier créé
    Bijour, tous le monde alros voila je suis une mer** en VBA toutefois j'arrive a comprendre lorsque que je le lis (uno punco) mais euh..j'ai essayer de me construire une macro sous excel a l'aide de plusieurs macro.....le probleme et ya une ligne ou y bloque..j'ai noté lendroit ou ca blok ds le code...(vs: '------c ici que ca merdouille-------)
    comme jarrive a le lire pa a lecrire..j'arrive pas a lui dire d'executer la suite de la macro sur la feuille1 du nouveau fichier créé...j'ai essayé

    windows (nomFichierSortie) . activate
    wkbnews. open nomfichiersortie
    activate(nomfichiersortie)
    et jai des erreurs 1004' ou 234' ou 9..enfin bref ca marche pas

    voila je pense c que pas trop compliqué et meme tout bete mais je dois pas en etre loin



    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
    Private Sub cmdExploiter_Click()
     Dim nomFichiertraite As String
     Dim nomFichierSortie As String
     Dim wkbDonnées As Workbook
     Dim wkbNew As Workbook
     Dim wshDonnées As Worksheet
     Dim wshSortie As Worksheet
    Dim NbrLigneFichierX As Integer
    Dim i As Long
     
     
       ChDir (ThisWorkbook.Path)
      nomFichiertraite = Application.GetOpenFilename("Classeur Microsoft Excel (*.xls),*.xls", 1, "Sélectionner le fichier à contenant les données")
     
      If nomFichiertraite = "Faux" Then Exit Sub
     
      Workbooks.Open nomFichiertraite
      Set wkbNew = Workbooks(Workbooks.Count)
        nomFichierSortie = Application.GetSaveAsFilename("", "Classeur MiscrosoftExcel (*.xls), *.xls", 1, _
                                 "FICHIER DE SORTIE POUR DATABASE:taper le nom du fichier de sortie")
     
    If nomFichierSortie = "Faux" Then Exit Sub
     
      wkbNew.SaveAs (nomFichierSortie)
     
     
    ' convercolonne Macro
    ' Macro pour separer la colonne trial et lieu attention celle ci
    ' -----------------"C ICI que ca merdouill"----------------------
     
          Columns("O:O").Select
        Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
        Columns("N:N").Select
           Selection.TextToColumns Destination:=Range("N1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
            Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
            :=Array(Array(1, 2), Array(2, 1)), TrailingMinusNumbers:=True
        Range("O1").Select
        ActiveCell.FormulaR1C1 = "LIEU"
    PS: tant que ya qqlun pour maider pouvez me dire au lieu de demander de selectionner la colonne O:O comment je pe lui demander de selectionner la colonne avec l'entete "genotype" merki merki merki!!!

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    GetOpenFilename et GetSaveAsFilename renvoient un type Variant et non String. Donc déclares tes variable de ce type. Et dans ton code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        If nomFichiertraite = False Then Exit Sub
     
        ...
     
        If nomFichieSortie = False Then Exit Sub
    ------------------------------

    doogybreton:

    ... au lieu de demander de selectionner la colonne O:O comment je pe lui demander de selectionner la colonne avec l'entete "genotype"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Dim rngColonneGenotype As Range
     
        ' En assumant que l'entête de colonne se trouve dans la première ligne de la feuille...
        Set rngColonneGenotype = ActiveSheet.Rows(1).Find(What:="genotype")
        If Not rngColonneGenotype Is Nothing Then
            Set rngColonneGenotype = rngColonneGenotype.EntireColumn
            ' à partir d'ici, rngColonneGenotype représente toute la colonne...
        End If

  3. #3
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 134
    Par défaut
    ok merci pour la 2eme reponse jai compris...
    mais pas pour la 1ere ^^ jai pa trop compris ..

    si je lance la premiere porcedure a part douverture du fichier et d'enregristrement tout ce passe impeccable!!
    mais par contre c quand je lui dit de selectionner colonne pour la prochiane etape. la il y a message d'erreur ..je pense il faut lui dire de fermer le vieux fichier et travailler la suite sur le nouveau ...donc je met quoi active???

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    La première explication n'est pas là pour rien...

    Quand tu ouvres les fichiers, tu crois qu'ils sont ouverts puisque la macro "n'accroche pas" à cet endroit là. C'est parce que nomFichiertraite et nomFichierSortie ne seront jamais = à "Faux". Ils seront = à False si le nom n'a pas été choisi... False n'est pas un String mais un Boolean. D'où la nécessité de définir tes variables de noms de fichiers en Variant, pour accomoder ces deux types de valeurs. Sinon, le "Then Exit Sub" ne se produira jamais, même si l'utilisateur ne choisit pas de fichier.

    La propriété Columns ne peux pas prendre de littéral comme indice. Seulement un entier (Long). Ainsi, Columns("O:O") ne se peut pas en VBA-Excel. Donc, erreur...

  5. #5
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 134
    Par défaut
    jai changé les string en variant et ca marche encore moins bien ...la premiere etape ne marche plus du tout..alors qu'avant elle marché impec en string (seul les esprits impure, par l'évocation de cette derniere phrase, auront un doux sourir de leur coins de levres).. et le column (O:O) c'est excel qui me la fait par la macro enregistrement, donc euh je suis perdu!! je rappel que je suis un illétré du VBA...donc kezako???

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Citation Envoyé par Singular Voir le message
    Ainsi, Columns("O:O") ne se peut pas en VBA-Excel. Donc, erreur...
    Salut
    heuu, je suis pas d'accord avec toi sur ce point la
    Ca fonctionne tres bien, et DoogyBreton a une macro sur son PC qui peu le confirmer, et oui j'ai des pouvoirs de divination ... Harry Potter is in me

    @DoogyBreton: Ca te permet de faire reference a une(ou plusieur) colonne entiere pas juste a une cellule.
    [Edit]
    Tiens voila ta macro un peu arrangé, j'ai pas fais grand chose juste remis un peu d'ordre
    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
    Private Sub cmdExploiter_Click()
     Dim nomFichiertraite As Variant
     Dim nomFichierSortie As Variant
     Dim wkbDonnées As Workbook
     Dim wkbNew As Workbook
     Dim wshDonnées As Worksheet
     Dim wshSortie As Worksheet
     Dim NbrLigneFichierX As Integer
     Dim i As Long
     Dim rngColonneGenotype As Range
     
     
        ChDir (ThisWorkbook.Path)
        nomFichiertraite = Application.GetOpenFilename("Classeur Microsoft Excel (*.xls),*.xls", 1, "Sélectionner le fichier à contenant les données")
     
        If nomFichiertraite = False Then Exit Sub
     
        Workbooks.Open nomFichiertraite
        Set wkbNew = Workbooks(Workbooks.Count)
        nomFichierSortie = Application.GetSaveAsFilename("", "Classeur MiscrosoftExcel (*.xls), *.xls", 1, _
                                 "FICHIER DE SORTIE POUR DATABASE:taper le nom du fichier de sortie")
     
        If nomFichierSortie = False Then Exit Sub
        wkbNew.SaveAs (nomFichierSortie)
     
        wkbNew.Activate 'meme pas sur que ce soit utile
     
    ' convercolonne Macro
    ' Macro pour separer la colonne trial et lieu attention celle ci
    ' -----------------"C ICI que ca merdouill"----------------------
     
        ' /////// Le code de Singular ///////
        ' En assumant que l'entête de colonne se trouve dans la première ligne de la feuille...
        Set rngColonneGenotype = ActiveSheet.Rows(1).Find(What:="genotype")
        If Not rngColonneGenotype Is Nothing Then
            Set rngColonneGenotype = rngColonneGenotype.EntireColumn
            ' à partir d'ici, rngColonneGenotype représente toute la colonne...
        End If
     
        rngColonneGenotype.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
        rngColonneGenotype.Cells(1, 1).Offset(0, -1).FormulaR1C1 = "LIEU"
        Columns("N:N").TextToColumns Destination:=Range("N1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
            Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
            :=Array(Array(1, 2), Array(2, 1)), TrailingMinusNumbers:=True
    End Sub
    Si tu veux des explications sur le code esite pas a demander. Et pour le coup j'avoue que j'ai pas compris ce que tu voulais faire avec TextToColumns.
    Cette ligne te posera peut etre probleme a la comprehension
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     rngColonneGenotype.Cells(1, 1).Offset(0, -1).FormulaR1C1 = "LIEU"
    En fait c'est tout simple
    rngColonneGenotype represente une colonne complete, donc une plage de cellule, dans cette plage de cellule je pointe sur la 1ere cellule Cells(1,1), puis je decale mon pointage d'une collonne vers l'arriere Offset(0, -1)
    [/Edit]
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    Désolé, je n'avais pas testé le Columns("O:O"); je ne me suis fié qu'à l'aide en ligne sur la propriété...

    Pour ce qui est des Variant qui ne fonctionnent pas, ça c'est du tout nouveau car je n'invente rien en disant que GetOpenFilename fonctionne de cette façon.

    Extrait de l'aide sur Application.GetOpenFilename:

    Notes

    Cette méthode renvoie le nom du fichier sélectionné ou le nom tapé par l'utilisateur. Le nom renvoyé est susceptible d'inclure une spécification de chemin. Si MultiSelect a la valeur True, la valeur renvoyée est un tableau des noms de fichiers sélectionnés (même si un seul nom de fichier est sélectionné). Renvoie la valeur False si l'utilisateur annule la boîte de dialogue.
    Cette méthode est susceptible de modifier le lecteur ou le dossier en cours.
    Si cette méthode peut renvoyer soit un String, un Boolean (False, en l'occurence) ou un tableau de Strings, c'est très certainement un Variant! Recevoir le renvoi de cette fonction dans tout autre type de variable est une commande expresse à la manufacture de problèmes...

    As-tu fait un suivi en débogage pas-à-pas avec des espions pour savoir quelles valeurs tu as à toutes les étapes?

  8. #8
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Citation Envoyé par Singular
    Désolé, je n'avais pas testé le Columns("O:O"); je ne me suis fié qu'à l'aide en ligne sur la propriété...


    Pour le variant je sais pas comment il s'y ai pris mais ca fonctionne parfaitement en effet
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  9. #9
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 134
    Par défaut
    ouah merci a tous de m'aider!! bon j'ai repris le code de qwazerty et j'y ai fait ma sauce! mais ca marche toujour pas erreur 1004'
    je c pa pourkoi!!
    a noter qu'auparavant j'avais créer chaque étape de la macro a part..
    et donc j'avais pu valdidé que chaque étape marche bien! mais bon fo croire kil vont pa ensemble meme avec un string!!

    je vous balance mon code si vous permettez!! pour y jeter un coup d'oeil je vous explique brievement ce que je cherche a faire! jai pleins de fichiers sous des noms differents que d'autres utilisateur devront mettre en forme avant de l'inserer dans ma database..et que eux...y seront encore moins douer que moi!!! donc je cherche a automatiser au max la mises en formes pour qu'ils soient ok pour etre importer ds access!!
    mon code doit en trois etapes...
    1/ creer une copie du premier fichier a traiter..et travailler la mises en formes sur cette copie
    2/trouver la colonne nommé genotype (cette colonne contient ds chq case 2 noms separer par un espace) puis creer une nouvelle colonne appeler lieu a coter de celle ci...ensuite il lance la fonction convertir ds la colonne genotype pour separer les 2 noms. le 1er nom reste ds la colonne genotype..le 2eme apres l'espace est envoyé ds la colonne lieu nouvellement creer..
    3/ Il va en colonne I (elle sappel colonne ID) et me supprime tout les 0 les 9 et les "LZM" de cette colonne qui sont devant chaque ID uniquement!!
    puis voila fermer

    ..dsle ca fait long a expliker pour pas grands choses voici enfin le code en entier!!
    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
    Private Sub cmdExploiter_Click()
     Dim nomFichiertraite As Variant
     Dim nomFichierSortie As Variant
     Dim wkbDonnées As Workbook
     Dim wkbNew As Workbook
     Dim wshDonnées As Worksheet
     Dim wshSortie As Worksheet
     Dim NbrLigneFichierX As Integer
     Dim i As Long
     Dim rngColonneGenotype As Range
     
     
        ChDir (ThisWorkbook.Path)
        nomFichiertraite = Application.GetOpenFilename("Classeur Microsoft Excel (*.xls),*.xls", 1, "Sélectionner le fichier à contenant les données")
     
        If nomFichiertraite = False Then Exit Sub
     
        Workbooks.Open nomFichiertraite
        Set wkbNew = Workbooks(Workbooks.Count)
        nomFichierSortie = Application.GetSaveAsFilename("", "Classeur MiscrosoftExcel (*.xls), *.xls", 1, _
                                 "FICHIER DE SORTIE POUR DATABASE:taper le nom du fichier de sortie")
     
        If nomFichierSortie = False Then Exit Sub
        wkbNew.SaveAs (nomFichierSortie)
     
        wkbNew.Activate 'meme pas sur que ce soit utile
     
    ' convercolonne Macro
    ' Macro pour separer la colonne trial et lieu attention celle ci
    ' -----------------"C ICI que ca merdouill"----------------------
     
        ' /////// Le code de Singular ///////
        ' En assumant que l'entête de colonne se trouve dans la première ligne de la feuille...
        Set rngColonneGenotype = ActiveSheet.Rows(1).Find(What:="genotype")
        If Not rngColonneGenotype Is Nothing Then
            Set rngColonneGenotype = rngColonneGenotype.EntireColumn
            ' à partir d'ici, rngColonneGenotype représente toute la colonne...
        End If
     
        rngColonneGenotype.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
        rngColonneGenotype.Cells(1, 1).Offset(0, -1).FormulaR1C1 = "LIEU"
        Columns("N:N").TextToColumns Destination:=Range("N1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
            Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
            :=Array(Array(1, 2), Array(2, 1)), TrailingMinusNumbers:=True
        Range("O1").Select
        ActiveCell.FormulaR1C1 = "LIEU"
     
       ' Macro qui supprime les 0, les 9 et les LZM en début de génotype
    ' Attention la colonne des génotypes doit etre en colonne I
     
        For i = 1 To Range("I65536").End(xlUp).row
        If Left(Range("I" & i), 1) = "0" Or Left(Range("I" & i), 1) = "9" Then Range("I" & i) = Right(Range("I" & i), Len(Range("I" & i)) - 1)
    Next i
    For i = 1 To Range("I65536").End(xlUp).row
         If Left(Range("I" & i), 3) = ("LZM") Then Range("I" & i) = Right(Range("I" & i), Len(Range("I" & i)) - 3)
    Next i
     
        wkbDonnées.Close (False)
     
      Application.Cursor = xlDefault
     
      Application.ScreenUpdating = True
     
     
    End Sub

  10. #10
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    RE
    Alors de maniere general evite les accents dans les varianble, c'est juste source d'ennui wkbDonnées
    Bon ensuite voila ton code (je pense qu'il etait incomplet, certaine variables etant declarées mais pas ou mal utilisées)

    En tout cas ca donne ca

    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
    Dim nomFichiertraite As Variant
    Dim nomFichierSortie As Variant
    'Dim wkbDonnées As Workbook
    Dim wkbNew As Workbook
    'Dim wshDonnées As Worksheet
    'Dim wshSortie As Worksheet
    'Dim NbrLigneFichierX As Integer
    Dim i As Long
    Dim TmpCell As Range
    Dim rngColonneGenotype As Range
     
     
    ChDir (ThisWorkbook.Path)
    nomFichiertraite = Application.GetOpenFilename("Classeur Microsoft Excel (*.xls),*.xls", 1, "Sélectionner le fichier à contenant les données")
     
    If nomFichiertraite = False Then Exit Sub
     
    Workbooks.Open nomFichiertraite
    Set wkbNew = Workbooks(Workbooks.Count)
    nomFichierSortie = Application.GetSaveAsFilename("", "Classeur MiscrosoftExcel (*.xls), *.xls", 1, _
    "FICHIER DE SORTIE POUR DATABASE:taper le nom du fichier de sortie")
     
    If nomFichierSortie = False Then Exit Sub
    wkbNew.SaveAs (nomFichierSortie)
     
    wkbNew.Activate 'meme pas sur que ce soit utile
     
    ' convercolonne Macro
    ' Macro pour separer la colonne trial et lieu attention celle ci
    ' -----------------"C ICI que ca merdouill"----------------------
     
    ' /////// Le code de Singular ///////
    ' En assumant que l'entête de colonne se trouve dans la première ligne de la feuille...
    Set rngColonneGenotype = ActiveSheet.Rows(1).Find(What:="genotype")
    If Not rngColonneGenotype Is Nothing Then
        Set rngColonneGenotype = rngColonneGenotype.EntireColumn
        ' à partir d'ici, rngColonneGenotype représente toute la colonne...
    End If
     
    rngColonneGenotype.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    rngColonneGenotype.Cells(1, 1).Offset(0, -1).FormulaR1C1 = "LIEU"
    Columns("N:N").TextToColumns Destination:=Range("N1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
        :=Array(Array(1, 2), Array(2, 1)), TrailingMinusNumbers:=True
     
    'Inutil remplacer par la ligne rngColonneGenotype.Cells(1, 1).Offset(0, -1).FormulaR1C1 = "LIEU"
    'Range("O1").Select
    'ActiveCell.FormulaR1C1 = "LIEU"
     
    ' Macro qui supprime les 0, les 9 et les LZM en début de génotype
    ' Attention la colonne des génotypes doit etre en colonne I
     
    'For i = 1 To Range("I65536").End(xlUp).Row
    'If Left(Range("I" & i), 1) = "0" Or Left(Range("I" & i), 1) = "9" Then Range("I" & i) = Right(Range("I" & i), Len(Range("I" & i)) - 1)
    'Next i
    'For i = 1 To Range("I65536").End(xlUp).Row
    'If Left(Range("I" & i), 3) = ("LZM") Then Range("I" & i) = Right(Range("I" & i), Len(Range("I" & i)) - 3)
    'Next i
     
    'Alors prefert plutot cette forme moins lourde
     
    For Each TmpCell In Range(Range("I1"), Range("I1").End(xlDown))
        If Left(TmpCell, 1) = "0" Or Left(TmpCell, 1) = "9" Then TmpCell = Right(TmpCell, Len(TmpCell) - 1)
        If Left(TmpCell, 3) = ("LZM") Then TmpCell = Right(TmpCell, Len(TmpCell) - 3)
    Next TmpCell
     
     
    'wkbDonnées.Close (False) 'tu ne l'as ouvert null part, inutil de le fermer = erreur
     
    'Application.Cursor = xlDefault 'jamais changer pourquoi remettre la valeur par defaut
     
    'Application.ScreenUpdating = True 'jamais mis a False, pourquoi le mettre a true
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  11. #11
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 134
    Par défaut
    yesssshhhh merki merki!!
    dsle de mettre du temps a repondre ..serieux je me suis endormie devant mon pc

    trop de travail tue le travail
    trop de VBA me tue....
    dire que ya une semaine je connaissai rien au VBA, SQL et bases de données..

  12. #12
    Membre chevronné

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Par défaut
    Citation Envoyé par Qwazerty Voir le message
    Pour le variant je sais pas comment il s'y ai pris mais ca fonctionne parfaitement en effet
    A++
    Qwaz
    Comme je l'ai écrit dans un message précédant, ça va fonctionner tant que ça va fonctionner. C'est-à-dire, tant qu'il donnera un nom de fichier valide et ne refermera pas la boîte de dialogue par le bouton 'Annuler', en quel cas le retour sera False et ne pourra pas être mis dans une variable String. Quel devrait être le résultat, à ton avis?

    Je n'ai jamais dit que c'était la cause de son problème, seulement que je voyais là quelque chose de louche à modifier dans son code.


  13. #13
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    SAkut
    Je daisais juste que tu avais sans aucun doute raison pour le Variant et que je me demandais comme DoogyBreton avait utilisé le type Variant pour que ca macro de fonctionne plus , rien de plus

    En tous cas si tu ton probleme est resolu n'oubli pas le tag resolu

    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  14. #14
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 134
    Par défaut
    merki javais pa oublier le tag resolu a cocher..
    je vous laissez simplement debattre sur les pb du string et des variantes

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

Discussions similaires

  1. Activation d’un fichier avec le nom incomplet
    Par volubiliss dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/03/2011, 10h32
  2. [XL-2003] Comment afficherun userform en activant un fichier Excel
    Par MichaSarah dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/04/2010, 13h32
  3. Activer un fichier d'apres le debut du nom
    Par Benjamin.Dohogne dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/12/2009, 14h13
  4. [E-02]Activer un fichier
    Par lucarno dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/10/2008, 20h50
  5. activation de fichiers avec une variable
    Par frolland46 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/06/2008, 23h32

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