Erreur d'exécution '91': / Variable objet ou variable de With non définie

Bonjour le Forum,

Je débute en VBA et je coince sur une erreur "Erreur d'exécution '91': Variable objet ou variable de With non définie". Je sollicite donc votre aide, car j'ai beau retourner le problème dans tous les sens je n'y arrive pas. Il est fort probable que la solution soit bien simple, mais mon niveau étant plus que basique je suis perdu.

Mon problème est que je recherche dans la colonne "A" toutes les valeur comprenant "TOTAL VEHICULE" et qu'une fois trouvée on met une bordure aux cellule de "A" a "H" puis on fusionne la valeur de la cellule de "A" à "G". Je joins mon fichier test avec en feuille 1 le fichier initial et en feuille 2 le fichier fini.

Par avance merci pour l'aide que vous pouvez m'apporter.

Cordialement.

18prefacture.zip (23.71 Ko)

Bonjour

Vous pouvez enlever ces deux instructions

firstaddress = c.Address

et

And c.Address <> firstaddress

Cordialement

Bonjour Chinois, Dan, bonjour le forum,

Essaie comme ça :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Dim PL As Range 'déclare la variable PL (PLage)

Set O = Worksheets("fichier initial") 'définit l'onglet O (à adapter à ton cas)
DL = O.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée de la colonne A de l'onglet O
For I = 8 To DL 'boucle des lignes 8 à DL
    'condition : si la cellule de la boucle en colonne A contient le texte "TOTAL VEHICULE"
    If InStr(1, O.Cells(I, "A").Value, "TOTAL VEHICULE", vbTextCompare) <> 0 Then
        Set PL = O.Cells(I, "A").Resize(1, 7) 'définit la plage PL
        With PL ' prend en compte la plage PL
            .Merge 'fusion
            .BorderAround xlContinuous, xlThin, xlColorIndexAutomatic 'bordures
        End With 'fin de la prise en compte de la plage PL
        PL.Offset(0, 1).BorderAround xlContinuous, xlThin, xlColorIndexAutomatic 'bordule de la cellule à droite de PL
        O.Rows(I).AutoFit 'ajustement de la ligne I
    End If 'fin de la condition
Next I 'prochaine ligne de la boucle
End Sub

Bonjour ThAUThème, bonjour Dan,

Je vient de tester la macro de ThauThème est elle corresponds parfaitement a mes attendus.

Dan j'ai supprimé les instructions ".address" et "And puis .address" mais j'ai une erreur sur la ligne "Loop While Not c Is Nothing = c <> firstaddress" j'ai donc mis égal.

Mais j'ai toujours le même message. Ai-je bien fait de mettre ce égal ?

Bonjour

Dan j'ai supprimé les instructions ".address" et "And puis .address" mais j'ai une erreur sur la ligne "Loop While Not c Is Nothing = c <> firstaddress" j'ai donc mis égal.

Vous m'étonnez car j'ai testé la solution avant.

Au vu de votre message, je ne suis pas sûr que vous avez supprimé les deux lignes...

Voici le code complet (j'ai ajouté Dan aux lignes modifiées)

Sub misenforme()
' misenforme Macro
Dim c As Variant

With ActiveSheet.Columns(1)

     Set c = .Find("TOTAL VEHICULE" & "*", LookIn:=xlValues)

        If Not c Is Nothing Then

            'firstaddress = c.Address --> Dan

            Do
                 Range("A" & c.Row & ":H" & c.Row).Borders.LineStyle = 1
                 Range("A" & c.Row & ":G" & c.Row).Merge
                 Range("A" & c.Row).EntireRow.AutoFit
                Set c = .FindNext(c)

            Loop While Not c Is Nothing ' And c.Address <> firstaddress --> Dan

        End If
End With
End Sub

Cordialement

Rechercher des sujets similaires à "erreur execution variable objet definie"