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 Left() sur une colonne [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2010
    Messages : 90
    Par défaut Fonction Left() sur une colonne
    Bonjour,

    Je me pose ce matin une question en constatant la lenteur de mon code : est il possible d'exécuter la fonction Left() sur une colonne sans passer par une boucle ?

    Par exemple pour supprimer des doublons en un fragment de seconde, nous pouvons utiliser ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Columns("A:B").Select
    ActiveSheet.Range("$A$1:$B$20108").RemoveDuplicates Columns:=Array(1, 2), _
           Header:=xlYes
    Y a t'il un code similaire pour remplacer un Left() qui utilise une boucle for ou do while ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
          Cells(i, 2) = Left(Cells(i, 2), 3)
    Next
    Merci d'avance pour votre retour

  2. #2
    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 cha_choux Voir le message
    est il possible d'exécuter la fonction Left() sur une colonne sans passer par une boucle ?
    Non

  3. #3
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Test()
    Range("A2:A100") = "Toto TITI"
    Columns("A:A").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A2:A100").FormulaR1C1 = "=left(RC[1],4)"
    Range("A2:A100").Value = Range("A2:A100").Value
    Columns("B:B").Delete Shift:=xlToLeft
    End Sub

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bien vu robert
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre confirmé
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2010
    Messages : 90
    Par défaut
    Ouuuuahhh trop fort les garcons !!

    Je passe de 40 secondes d'exécution à 25 secondes pour la manipulation de cet Excel (je dois effectuer pas mal d'étapes afin de passer d'une 50aine de colonnes et 27000 lignes, à 2 colonnes et 2000 lignes...)

    Merci beaucoup

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par cha_choux Voir le message
    Ouuuuahhh trop fort les garcons !!

    Je passe de 40 secondes d'exécution à 25 secondes pour la manipulation de cet Excel (je dois effectuer pas mal d'étapes afin de passer d'une 50aine de colonnes et 27000 lignes, à 2 colonnes et 2000 lignes...)

    Merci beaucoup
    Tu aurais intérêt à désactiver le calcul automatique en début de fonction puis à le remettre en fin de fonction. Idem pour le rafraichissement d'écran. Ca fait gagner beaucoup de temps à la macro.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre confirmé
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2010
    Messages : 90
    Par défaut
    Pierre, ce code est exécuter à partir d'Access, l'application Excel à ce moment la cachée (xlAPP:Visible = False)
    J'imagine que ca inclus la désactivation du calcul automatique et du rafraichissement de l'écran

    Pour la fonction de dysorthographie je l'ai adaptée à mon besoin, voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
       TitleCellsB = Cells(1, 2)
        j = Cells(Rows.Count, 1).End(xlUp).Row
     
        Columns("B:B").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
        Range("B2:B" & j).FormulaR1C1 = "=left(RC[1],3)"
        Range("B2:B" & j).Value = Range("B2:B" & j).Value
        Columns("C:C").Delete Shift:=xlToLeft
     
        Cells(1, 2) = TitleCellsB
    A ce stade de la manipulation de l'Excel, il ne reste 2 colonnes et 3000 lignes, utiliser la colonne C ne me gène pas

  8. #8
    Membre confirmé
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2010
    Messages : 90
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Tu aurais intérêt à désactiver le calcul automatique en début de fonction puis à le remettre en fin de fonction. Idem pour le rafraichissement d'écran. Ca fait gagner beaucoup de temps à la macro.
    J'ai testé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Application.ScreenUpdating = False
     
     Application.ScreenUpdating = True
    4 secondes de gagnées, merci !
    Je vais l'ajouter à chaque manipulation d'Excel de cette grosse MAJ quotidienne.

    Pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Application.Calculation = xlCalculationManual
    Application.Calculation = xlCalculationAutomatic
    Celui-ci ne me fait pas gagner de temps, ce qui me semble logique puisque l'Excel est uniquement le résultat d'un export d'un logiciel.

    Je prend en tout cas bien note de ces éléments super utiles

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Test()
    Range("A2:A100") = "Toto TITI"
    Columns("A:A").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A2:A100").FormulaR1C1 = "=left(RC[1],4)"
    Range("A2:A100").Value = Range("A2:A100").Value
    Columns("B:B").Delete Shift:=xlToLeft
    End Sub
    Hum... Et si on a des données en dessous de A100, on fait quoi?

    Attention à ces solutions qui paraissent miraculeuses mais qui peuvent casser complètement un classeur. Toujours bien penser aux conséquences avant d'employer des méthodes qui ne tiennent pas compte de la configuration du classeur et qui ne fonctionnent que dans un cas précis...

    J'ai bouclé sur 100.000 lignes en traitant directement les cellules => 10 secondes (Tu as 100.000 lignes dans ton tableau?).

    Pour accélérer, j'ai utilisé un tableau VBA interne à la fonction de traitement => 1 seconde...

    Est-ce vraiment utile de risquer de démolir son classeur à coups d'insertion et de suppression de colonnes pour ce genre de traitements?

    A titre d'exemple, voici les fonctions utilisées

    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
    Sub DelCells()
      Dim Debut As Date
      Dim Fin As Date
      Dim Cell As Range
     
      Debut = Now()
      For Each Cell In Range("tableau1")
        Cell.Value = Left(Cell, 4)
      Next
      Fin = Now()
      Debug.Print "Cellules: " & Format(Fin - Debut, "h:mm:ss")
    End Sub
     
    Sub DelTab()
      Dim Debut As Date
      Dim Fin As Date
      Dim Values
      Dim i As Long
     
      i = 0
      Debut = Now()
      Values = Range("tableau13").Value
      For i = LBound(Values) To UBound(Values)
        Values(i, 1) = Left(Values(i, 1), 4)
      Next i
      Range("tableau13").Value = Values
      Fin = Now()
      Debug.Print "Tableau: " & Format(Fin - Debut, "h:mm:ss")
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Citation Envoyé par cha_choux Voir le message
    Y a t'il un code similaire pour remplacer un Left() qui utilise une boucle for ou do while ?
    Oui et directement sans colonne supplémentaire via une formule de calculs au sein de la puissante fonction   Evaluate   !

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  11. #11
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
    With CreateObject("Adodb.Connection")
        .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;HDR=YES;"""
        .Execute "Update [Feuil1$] set [Mon Champ]=Left([Mon Champ],4)"
        .Close
    End With
    End Sub

  12. #12
    Invité
    Invité(e)
    Par défaut
    Ici c'est un exemple pour la compréhension, car j'imagine que "Toto TITI" ne l’intéresse pas!

  13. #13
    Invité
    Invité(e)
    Par défaut
    si ton code est exécute à partir d'Access pourquoi pas faire une requête dans Access!

    https://mon-partage.fr/f/LoCWKVjq/

  14. #14
    Membre confirmé
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2010
    Messages : 90
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    si ton code est exécute à partir d'Access pourquoi pas faire une requête dans Access!

    https://mon-partage.fr/f/LoCWKVjq/
    Je trouvais plus simple d'effectuer toutes les manipulations nécessaires avant d'insérer le code dans Access

    Cela me permet d'avoir une table avec seulement les deux colonnes qui m'intéresse et de ne pas polluer le fichier déjà très lourd avec des données inutiles

    PS : pour ton fichier je vais essayer de l'ouvrir, mais je ne promet rien, la liaison entre Internet et le reste du poste de travail est très limitée

  15. #15
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Pour ce genre de traitements, tu as toujours intérêt à passer par des formules Excel que tu places en VBA dans les cellules des colonnes souhaitées. C'est nettement plus rapide que de réaliser des boucles.

    Dans ce traitement-ci où il s'agit de nettoyage, tu peux utiliser d'autres colonnes, puisque le but est de nettoyer ta feuille.

    Voici un code d'exemple qui concatène 100000 lignes sur 3 colonnes. C'est instantané...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Concat()
      Range("d1:d100000").Formula = "=concatenate(a1,b1,c1)"
      Range("d1:d100000").Copy
      Range("d1:d100000").PasteSpecial xlPasteValues
      Application.CutCopyMode = False
    End Sub

    En fait, ce qui est toujours intéressant dans ce genre de traitements complexes, c'est de connaître dès le début les tenants et les aboutissants, de manière à pouvoir t'orienter vers les meilleurs / moins mauvais choix possibles.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  16. #16
    Membre confirmé
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2010
    Messages : 90
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Pour ce genre de traitements, tu as toujours intérêt à passer par des formules Excel que tu places en VBA dans les cellules des colonnes souhaitées. C'est nettement plus rapide que de réaliser des boucles.

    Dans ce traitement-ci où il s'agit de nettoyage, tu peux utiliser d'autres colonnes, puisque le but est de nettoyer ta feuille.

    Voici un code d'exemple qui concatène 100000 lignes sur 3 colonnes. C'est instantané...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Concat()
      Range("d1:d100000").Formula = "=concatenate(a1,b1,c1)"
      Range("d1:d100000").Copy
      Range("d1:d100000").PasteSpecial xlPasteValues
      Application.CutCopyMode = False
    End Sub

    raaaa mais vous êtes trop fort, je me sens toute ridicule avec mes lignes de codes à coté de vous...

    Pour la concaténation, je vais regarder ton code, mais ce n'est pas facile car il doit effectuer l'action que si la cellule A1 et A2 sont identique (par exemple) d'où la boucle
    Et il ne faut pas que j'oublies de regarder pour la désactivation des calculs et rafraichissement d'écran

  17. #17
    Membre confirmé
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2010
    Messages : 90
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    En fait, ce qui est toujours intéressant dans ce genre de traitements complexes, c'est de connaître dès le début les tenants et les aboutissants, de manière à pouvoir t'orienter vers les meilleurs / moins mauvais choix possibles.
    Mouarf c'est un des problèmes principaux, les utilisateurs me demandes des modifications toutes les demi journées, ce n'est pas facile de suivre tout en gardant un code optimisé.

    Notamment quand ce n'est absolument pas ton métier

  18. #18
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Si c'est un extract d'un logiciel, je suppose qu'il est constant (au moins dans la forme et la structure).

    Je réalise souvent des automatisations de nettoyage d'extract SAP et en général, c'est assez simple à nettoyer, et surtout, constant d'une fois à l'autre (pour une même demande SAP, bien entendu).

    En créant des petites fonctions, tu simplifies ta maintenance en cas de modifs dans la forme de l'extract
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  19. #19
    Membre confirmé
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2010
    Messages : 90
    Par défaut
    Citation Envoyé par Pierre Fauconnier Voir le message
    Si c'est un extract d'un logiciel, je suppose qu'il est constant (au moins dans la forme et la structure).

    Je réalise souvent des automatisations de nettoyage d'extract SAP et en général, c'est assez simple à nettoyer, et surtout, constant d'une fois à l'autre (pour une même demande SAP, bien entendu).

    En créant des petites fonctions, tu simplifies ta maintenance en cas de modifs dans la forme de l'extract
    J'essaye , c'est pour cela également que je blinde le code de commentaire.

    Je regarderais à l'occasion pour passer par le nom des colonnes que je conserve, plutôt que de compter combien de colonnes je dois supprimer, j'aurais moins de chance d'avoir un bug s'ils décident de modifier la requête d'extraction

    Mais pour l'instant place au formula !

  20. #20
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Dans le cas où une condition doit être remplie, tu peux la placer dans la formule que tu crées dans range("d1:d100000").formula.
    Le plus simple pour moi étant de la créer dans Excel, puis de la regarder en VBA pour voir comment la construire/adapter.

    Pense toujours Excel avant de penser VBA (et logique "programmeur"). Dans des traitements de ce genre, tu gagneras du temps à utiliser la puissance d'Excel dans des formules que d'utiliser du code itératif en VBA
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Left sur une colonne utf8
    Par waxman dans le forum Langage SQL
    Réponses: 31
    Dernier message: 03/07/2012, 23h11
  2. fonction stxt sur une colonne
    Par trago dans le forum Excel
    Réponses: 5
    Dernier message: 11/09/2009, 18h43
  3. Réponses: 4
    Dernier message: 31/10/2006, 19h03
  4. Contraite NULL sur une colonne en fonction d'une autre colon
    Par speedy1496 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/04/2004, 19h29

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