Bonjour modifier une macro

LouReeD a écrit :

Oui

ma question est pour les "pro" :

dans Range(plage).Select où plage est égal à par exemple : $a$2,$b$3,$a$4 etc

y a-t-il un nombre maximum d'argument ?

@ bientôt

LouReeD

Bonsoir,

cela semble limité à 255 caractères.

Une solution avec Union

Sub Selectionner()
Application.ScreenUpdating = False
Application.Visible = False
Dim i, c
    Dim nb_lignes As Long
i = 1
nb_lignes = Range("A65536").End(xlUp).Row
        For Each c In Range("A1:AD" & nb_lignes)
            If c.Interior.ColorIndex = xlNone And c Like Cells(i, "AI") Then
                If plage Is Nothing Then Set plage = c Else Set plage = Union(plage, c)
            End If
        Next c
        i = i + 1
    Wend
   plage.Select
    Application.ScreenUpdating = True
    Application.Visible = True
End Sub
 

Bonsoir,

ok , voilà pourquoi l'erreur sur un tableau "immense" !

Merci mercure.... Heu ??? Acide sulfurique ....

@ bientôt

LouReeD

LouReeD a écrit :

Bonsoir,

ok , voilà pourquoi l'erreur sur un tableau "immense" !

Merci mercure.... Heu ??? Acide sulfurique ....

@ bientôt

LouReeD

de rien Lewis Allan heu ??? LouReeD ...

à +++

bonjour j'ai un problème avec la macro la solution que tu avais donné LouReeD fonctionnais bien si le résultat n'est pas trop élevé.

mais cela ne va pas pour moi car j'ai des recherches avec beaucoup de résultats j'ai donc pris la macro de h2so4 mais elle ne fonctionne pas il me surligne page select en dessous de Wend et marque erreur objet requis.

que faut-il faire merci?

Sub Selectionner()
Application.ScreenUpdating = False
Application.Visible = False
Dim i, c
    Dim nb_lignes As Long
i = 1
nb_lignes = Range("A65536").End(xlUp).Row
    While Cells(i, "AI") <> ""
        For Each c In Range("A1:AD" & nb_lignes)
            If c.Interior.ColorIndex = xlNone And c Like Cells(i, "AI") Then
                If plage Is Nothing Then Set plage = c Else Set plage = Union(plage, c)
            End If
        Next c
        i = i + 1
    Wend
   plage.Select
    Application.ScreenUpdating = True
    Application.Visible = True
End Sub
 

Bonsoir,

Je pense que tu pourrais obtenir ce message d'erreur dès lors qu'aucune cellule ne correspond aux critères.

voici une version qui envisage ce cas.

Sub Selectionner()
Application.ScreenUpdating = False
Application.Visible = False
Dim i, c
    Dim nb_lignes As Long
i = 1
nb_lignes = Range("A65536").End(xlUp).Row
    While Cells(i, "AI") <> ""
        For Each c In Range("A1:AD" & nb_lignes)
            If c.Interior.ColorIndex = xlNone And c Like Cells(i, "AI") Then
                If plage Is Nothing Then Set plage = c Else Set plage = Union(plage, c)
            End If
        Next c
        i = i + 1
    Wend
    if plage is nothing then
           msgbox "aucune cellule ne répond aux critères"
    else
          plage.Select
    end if
    Application.ScreenUpdating = True
    Application.Visible = True
End Sub
 

bonsoir j'ai essayé mais cela me fait la même erreur.

le message erreur objet requis provient du mot plage lorsque je passe dessus il me marque vide.

Vu que la plage ne correspond à rien la macro ne fonctionne pas.

mais je ne sais pas comment modifier sa.

Bonjour, bonsoir,

au vu de ceci :

Set plage = Union(plage, c)

ne faudrait-il pas mettre ceci ?

Sub Selectionner()

' Application.Visible = False
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlManual

Dim i, c
Dim nb_lignes As Long
Dim plage As Range

i = 1
nb_lignes = Range("A65536").End(xlUp).Row

While Cells(i, "AI") <> ""
    For Each c In Range("A1:AD" & nb_lignes)
        If c.Interior.ColorIndex = xlNone And c Like Cells(i, "AI") Then
            If plage Is Nothing Then Set plage = c Else Set plage = Union(plage, c)
        End If
    Next c
    i = i + 1
Wend

If plage Is Nothing Then
    MsgBox "aucune cellule ne répond aux critères"
Else
    plage.Select
End If

Application.Calculation = xlAutomatic
Application.EnableEvents = True
Application.ScreenUpdating = True
' Application.Visible = True

End Sub

à tester

@ bientôt

LouReeD

bonsoir il y a encore un problème j'ai rentré la macro est fait un teste avec 2 formules connues qui se trouvent dans ma liste mais il me marque aucune cellule ne répond aux critères.

mais elles correspondent et devrait être sélectionner.

bonjour,

difficile d'aider sans avoir le fichier. peux-tu créer un fichier qui reproduit l'erreur, avec tes 2 plages connues et test critères de recherche.

bonjour je vous est joint 3 fichiers avec les mêmes valeurs.

le TEST1 et le TEST2 on la même macro.

dans le TEST1 la macro ne fonctionne pas car le résultat à sélectionner est trop gros, mais elle fonctionne avec un résultat plus petit dans le TEST2.

Dans le TEST3 j'ai mis la macro que proposait LouReeD mais il y a un problème il me marque aucune cellule ne répond aux critères alors qu'il devrait me sélectionner toutes celles que je recherche.

Merci pour votre aide

10test-1.xlsm (20.56 Ko)
11test-2.xlsm (20.53 Ko)
12test-3.xlsm (21.18 Ko)

Bonsoir,

je réponds pour test3.

la macro doit evidemment être adaptée pour correspondre à la structure du fichier. quand ceci est fait, la sélection me semble correcte.

17test-3.xlsm (19.99 Ko)

bonsoir j'avais oublié de modifier les donnés sur le TEST3.

je vous remercie pour votre aide car je viens de comprendre pourquoi ça ne marcher pas sur mon fichier, dans la ligne

nb_lignes = Range("A65536"). End(xlUp). Row

il ne faut pas s'arrêter sur la dernière cellule qui a un contenu la A65536 dans mon cas, mais il faut descendre jusqu'à une cellule vide donc A65537.

Dans ce cas sa fonctionne très bien.

Merci pour votre aide

Rechercher des sujets similaires à "modifier macro"