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 :

Recherche d'égalités dans 2 colonnes différentes


Sujet :

Macros et VBA Excel

  1. #141
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 947
    Points : 9 275
    Points
    9 275
    Par défaut
    hello,
    Citation Envoyé par RyuAutodidacte Voir le message
    Hi Patrick, le forum,
    Une façon plus précise d'obtenir la dernière ligne parmi les colonnes choisies (comme cela les colonnes B et D sont exclus) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub DerLig()
        ColDL = Array(1, 3, 5)
            For i = LBound(ColDL) To UBound(ColDL)
                DLig = DerL: DerL = Cells(Rows.Count, ColDL(i)).End(xlUp).Row
                If DerL > DLig Then DLig = DerL Else DerL = DLig
            Next
        MsgBox DLig
    End Sub
    PS : si quelqu'un à une autre méthode je suis preneur
    c'est la même méthode mais peut-être d'une façon plus élégante (on pourrait passer le range en paramètre ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub DerLig()
        Dim rng As Range
        Set rng = [A:A,C:C,E:E]
            For Each col In rng.Columns
                DLig = DerL: DerL = Cells(Rows.Count, col.Column).End(xlUp).row
                If DerL > DLig Then DLig = DerL Else DerL = DLig
            Next
        MsgBox DLig
    End Sub
    Ami calmant, J.P
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  2. #142
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut
    Essaie avec union ce que tu viens d'essayer
    Je l avais fait et c etait la solution dont je n etait pas sur par contre. Moi j ai fait
    A:C, C:E et ca me virait la B mais pas la. D

    Bonjour jurrassic
    On essaie justement de se passer de boucle
    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

  3. #143
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 947
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 947
    Points : 9 275
    Points
    9 275
    Par défaut
    hello Patrick,
    ça a pas l'air facile car le find de la dernière ligne sur des plages non contigües ça a pas l'air facile à faire marcher.
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  4. #144
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour jurrassic

    oui mais je pense qu'il y a une solution reste a la trouver

    je pense quand même que Microsoft a prévu une chose aussi simple (trouver la dernier ligne sur 3 colonne non contiguës)

    peut être avec union on pourrait avoir le rows.count ajouté a cela le .row qui donne la première ligne on devrait faire le lardon
    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. #145
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 250
    Points
    34 250
    Par défaut
    Bonjour,

    pourriez-vous m'indiquer si ce sujet a trouvé une solution, je vois qu'on en est déjà à 7 pages de discussions....

    Merci
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  6. #146
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour Jpcheck

    la réponse est oui et non

    oui: l'objectif est quasi atteint avec différentes méthodes de tri

    non: reste une formule pour déterminer la dernière ligne utilisée dans une plage de colonnes non contiguës ( sans devoir boucler bien entendu)

    si tu a cela sous la main , je pense que le reste des participants et moi même en seront ravi
    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

  7. #147
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 250
    Points
    34 250
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =MIN(ROW(rng))+ROWS(rng)-1
    ou meme pour choper l'adresse de la derniere cellule d'une plage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =ADDRESS(ROW(rng)+ROWS(rng)-1,COLUMN(rng)+COLUMNS(rng)-1)
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  8. #148
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    =ADDRESS(ROW(rng)+ROWS(rng)-1,COLUMN(rng)+COLUMNS(rng)-1)
    je suppose que rng représente la plage de colonne?
    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

  9. #149
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 250
    Points
    34 250
    Par défaut
    Pardon, oui rng est une plage nommee dans mon exemple.

    Pourquoi ne pas passer par une boucle ou un appel de code VBA ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  10. #150
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    ben une boucle on connais je sais faire

    j'essaie de trouver des méthodes sans boucle

    je pense aussi a évaluâtes mais j'ai du mal a le métriser celui la
    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

  11. #151
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Bonsoir,
    des nouveaux participants !!

    toujours plein de tests et pas de résultat concluant mis à part la boucle sur les 3 colonnes (mais le principe est de le faire sans boucle)

    PS @jurassic pork : j'aime bien aussi ta version

    Problème rencontré avec le Find, c'est que selon les paramètres on obtient seulement le résultat soit de la 1è colonne soit le résultat de la dernière colonne (parmis les colonnes choisies non contigues),
    mais je n'ai pas réussi à lui faire prendre en compte la ou les colonnes (selon le nombres de colonnes choisies non contigues - dans l'exemple il y a que 3 colonnes), se trouvant entre la 1ère et la dernière colonne.

    J'ai une idée qui me vient l'instant (aucun test de fait et je ne sais pas du tout comment m'y prendre - c'est une projection visuel qui me vient du problème donc non raisonné en programmation ) :
    Dans le cas où l'on a une plage non contigues, on doit être capable de déterminer son adresse et bien sur dans l'adresse le plus grand chiffre s'y trouvant sera la dernière ligne,
    il faut donc trouver le moyen de sniper ce chiffre et on aura notre dernière ligne.
    Quen pensez-vous ?
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  12. #152
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonsoir ryu
    Dans le cas où l'on a une plage non contigues, on doit être capable de déterminer son adresse et bien sur dans l'adresse le plus grand chiffre s'y trouvant sera la dernière ligne,
    il faut donc trouver le moyen de sniper ce chiffre et on aura notre dernière ligne.
    Quen pensez-vous ?
    union !!!!
    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

  13. #153
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Hi Patrick,
    Citation Envoyé par patricktoulon Voir le message
    union !!!!
    Hola tu as cru que j'étais aveugle ou que je ne connais pas union
    le problème ce n'est pas de faire union que je sais faire mais de trouver la bonne technique pour avoir la dernière ligne sans boucle,
    si tu as la solution, je suis preneur

    si tu as bien lu mon précédent message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Problème rencontré avec le Find, …
    car dès que tu as des valeurs en colonne B ou D ou les 2 ca pose problème et c'est là que le bât blesse
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  14. #154
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    Hi Patrick,

    je suis de retour

    j'ai testé plein de choses même avec union et j'ai toujours pas trouvé la solution, si toit tu l'as je te donne ma langue au chat, j'aimerais connaître la réponse stp.
    le dernier code que j'ai fait, mais pas ok pour moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub DerLig()
    Der_L = Union(Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp)), Range(Cells(1, 3), Cells(Rows.Count, 3).End(xlUp)), Range(Cells(1, 5), Cells(Rows.Count, 5).End(xlUp))).Find("*", , , , xlByRows, xlPrevious).Row
    MsgBox Der_L
    End Sub
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  15. #155
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut Hi je reviens sur du vieux pour faire du neuf ;-) - Dernière ligne sur plage discontinue + *voir à la fin
    Hello Marc, Patrick, les participants du post et le forum,

    Je reviens sur ce post car on s'est posé la question de comment avoir la dernière ligne sur une plage discontinue sans boucle

    Ça m'a un peu travaillé, he bien je pense enfin avoir la réponse - les pro, j'attends vos commentaires sur ce qui est bien ou pas

    PS : Patrick, je te laisserai reporter ta version avec union sur ce post si tu le veux bien : cf. => post #78 et post #80

    Je suis parti sur 2 pistes pour arriver à un autre résultat final sans boucle :
    - Une avec l'adresse complète
    - Une avec Array

    Attention : les codes proposés sont PC/MAC, étant donné que sur Mac tout ne marche pas de la même façon que sur PC, ils peuvent surement être améliorés sur PC,
    mais il ne faut pas oublier que de la façon dont je les ai fait il sont fonctionnels sur les 2 plateformes
    PS : j'ai fait mes codes sans Option Explicit (n'hésitez pas sur le retour)

    Concernant l'adresse : le but était de récupérer seulement les chiffres de l'adresse de la plage discontinue
    (incluant en dernière ligne de plage bien sur, une donnée) afin de déterminé le chiffre le plus haut qui serait la dernière ligne
    PS : ceci peut se faire avec le Regex et plus rapidement sur PC - version non faite pour l'instant (sur Mac il faut que je vois comment faire car le Regex rencontré sur PC à besoin d'activeX)

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub MaDerniereligne_1()
    Dim i&, j&
     
    Adrs = Range("A:A,C:C,E:E").SpecialCells(xlCellTypeConstants, 23).Address
    Adrs = Split(Adrs, "$"): ReDim Lig(1 To UBound(Adrs) / 2)
        For i = 2 To UBound(Adrs) Step 2
            j = j + 1: SEP = Mid(Adrs(i), Len(Adrs(i)), 1)
            If SEP = ":" Or SEP = "," Then Lig(j) = CLng(Replace(Adrs(i), SEP, "")) Else Lig(j) = CLng(Adrs(i))
        Next
    MsgBox Application.Max(Lig)
     
    End Sub
    toutes suggestions ou propositions d'améliorations sont les bienvenue

    Concernant l'array : l'Array ici est là juste pour indiquer les colonnes
    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub MaDerniereligne_2()
    Col = Array(1, 3, 5, 8): ReDim DerL(1 To UBound(Col) + 1)
    For i = 1 To UBound(Col) + 1: DerL(i) = Cells(Rows.Count, Col(i - 1)).End(xlUp).Row: Next
    MsgBox Application.Max(DerL)
    End Sub
    Alors pourquoi j'ai mis ces 2 versions, tout simplement par ce que la réponse était sous mes yeux et je m'en suis aperçu après

    Maintenant venons à la version 1 ligne; faire Union pourquoi pas mais l'utilisation de Application.Max(), m'a ouvert les yeux :
    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub MaDerniereligne_3()
    MsgBox Application.Max(Cells(Rows.Count, 1).End(xlUp).Row, Cells(Rows.Count, 3).End(xlUp).Row, Cells(Rows.Count, 5).End(xlUp).Row)
    End Sub
    OK ça peut être lourd à écrire donc passons par une fonction (Attention c'est ma 1ère fonction, je ne sais pas si je l'ai faite correctement, donc tous conseils sont les bienvenue) :
    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function DLig(DerL As Variant, Optional Ws As Worksheet) As Long
    Dim DL As Long, Sh As Worksheet
        If Ws Is Nothing Then Set Sh = ActiveSheet Else Set Sh = Ws
        DL = Sh.Cells(Rows.Count, DerL).End(xlUp).Row
        DLig = DL:
    End Function
     
    Sub MaDerniereligne_4()
    MsgBox Application.Max(DLig(1), DLig(3), DLig(5))
    End Sub
    Et là où cela devient intéressant c'est que je me suis aperçu que je pouvais aussi me basé sur la dernière ligne de plusieurs feuilles si les conditions d'une future macro le demande : ex. :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Application.Max(DLig(1, Feuil1), DLig(3, Sheets(2)), DLig(5,Worksheets(3)))
    Voilà - qu'en pensez vous ?

    * HELP : une petite demande d'aide svp : je voulais savoir si il est possible de faire un type/sorte de UsedRange uniquement sur les colonnes voulues les autres étant exclu pour sélectionner une plage discontinue
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  16. #156
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonjour
    a des conseil oui!!!! au moins un déjà

    tu va beaucoup trop loin dans ta recherche alors que tu a ta solution des ta première ligne bien que la on risque d'avoir des soucis si il y a des formules dans les cellules

    mais bon allons y avec les speciallcells !!!!!!!!

    moi il me viens une question tout de suite !!!

    pourquoi cherche tu la ligne la plus base c'est completement inutile dans cet exercice
    oui absolument inutile!!!!!!!!!!!
    puisque dans ton adress tu ales plages exactes de tes colonnes grand beta!!!!!

    avec ton split a la truc a GOGO!!! de n'importe quoi!!!

    fait directement tes array de valeur grand beta !!!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub test()
    adrs = Range("A:A,C:C,E:E").SpecialCells(xlCellTypeConstants, 23).Address
    ReDim vecteur(UBound(Split(adrs, ",")))
    For i = 0 To UBound(Split(adrs, ","))
    vecteur(i) = Application.Transpose(Application.Index(Range(Split(adrs, ",")(i)), , 1))
        Debug.Print Join(vecteur(i), ",")
    Next
    End Sub
    je t'ai pourtant donné il n'y a pas longtemps des exemple avec la méthode index hein!!!!!!

    ca a du mal a rentrer hein !!!

    allez essaie encore !!!!!.......
    hihihihih!!!!

    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

  17. #157
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    re,
    bon ça commence bien j'essaie ton code sur Mac il me fait erreur 13 ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print Join(vecteur(i), ",")
    je vais regarder cà chez moi pour l'erreur

    Par contre tu n'as rien dit sur le code une ligne sans boucle
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  18. #158
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    Nom : demo2.gif
Affichages : 111
Taille : 188,1 Ko

    après tu 't'ennuie vraiment pour rien une seul boucle sur l'array global suffit a faire ce que tu veux
    je te laisse faire ta recherche de raison de l'erreur
    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

  19. #159
    Expert confirmé
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Points : 4 174
    Points
    4 174
    Par défaut
    re,
    j'ai compris pourquoi ça ne marche pas, par ce que j'ai pris en compte le fait qu'il soit possible d'avoir des lignes vides, ce qui n'est pas ton cas dans ton exemple.

    en plus j'ai du mal à comprendre pourquoi tu prends les valeurs des cellules alors que tout ce qui nous intéresse ici , c'est la dernière ligne d'une plage discontinue.

    Concernant la récupération de l'adresse de la plage discontinue ,je split seulement celle-ci, pour en récupérer les numéros de lignes et en déterminer la dernière ligne

    dans le principe sans forcément l'écriture, en schématisant Union, mais à la place on pointe sur le numéro de ligne on a un résultat direct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Application.Max(Cells(Rows.Count, 1).End(xlUp).Row, Cells(Rows.Count, 3).End(xlUp).Row, Cells(Rows.Count, 5).End(xlUp).Row)
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre en n'oubliant pas d'indiquer qu'elle est la solution finale choisie

  20. #160
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    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 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    a non !!!
    ton exercice depuis le debut c'est les doublons inter colonne

    tu pars sur plein de direction avec des exercices de style et tu en oubli la destination finale

    les exercices de style c'est bien je suis le premier a m'amuser avec ca mais il ne faut pas perdre de vue le but

    sinon tu te retrouve avec un roman pour code LOL!!!!

    et pour aller plus loin dans mon raisonnement il n'est null besoins de tout ca

    tu prends le tableau entier colonne non pris en charges comprise et tu teste que sur les colonnes voulues

    avec application.match ;si tu connais pas fait une recherche
    si tu comprends pas je te ferais des exemples
    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

+ Répondre à la discussion
Cette discussion est résolue.
Page 8 sur 10 PremièrePremière ... 45678910 DernièreDernière

Discussions similaires

  1. Réponses: 6
    Dernier message: 29/08/2007, 06h49
  2. Réponses: 10
    Dernier message: 12/06/2007, 10h32
  3. Réponses: 4
    Dernier message: 27/03/2007, 09h49
  4. recherche de donnée dans 2 colonnes
    Par zeloutre dans le forum Access
    Réponses: 10
    Dernier message: 05/03/2007, 12h08
  5. Réponses: 3
    Dernier message: 06/02/2007, 11h04

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