VBA liaison automatique

il me fallait juste une ligne pour ouvrir le fichier selectionner sinon la liaison ne se fait pas

mais c'est bon tout marche merci beaucoup de votre aide.

Ok. Bizarre tout de même car je n'ai aucun souci de mon coté

Peut-être me montrer votre ligne ajoutée ?

Pensez à cloturer le fil

Crdlt

Peut-être me montrer votre ligne ajoutée ?

J'ai juste rajouter sa comme ligne

Workbooks.Open (fichier)

Ok. J'ai compris.

Mais si votre fichier à ouvrir ne contient qu'une seule feuille, le code tel que je vous l'ai proposé fonctionne. En tout cas sur ma version 2016.
Le cas échéant excel si le fichier contient plus d'1 feuille excel vous propose dans une fenêtre de choisir la feuille concernée

Je peux regarder vos autres codes si vous le voulez

NB : attention que si vous déclarez vos variables comme ceci --> Dim t, c As Long --> t est variant et c est long

Si terminé oubliez pas de cloturer

Crdlt

comment je dois clôturer ?

comment je dois clôturer ?

Comme vous avez fait c'est bon (vous avez cliqué sur le petit v

Au fait je viens de voir que l'on peut faire un seul code hors des codes y, z, AH, AI.
Donc si intérêt dites-moi

oui je veux bien savoir

Dans votre fichier posté, ce sont bien les cellules 25, 26, 34 et 35 dans lesquelles vous mentionnez la variable t de vos codes ?

Aussi dans les 150 lignes de la colonne 1, y a-t-il d'autres couleurs que -4142 (correspond à aucun remplissage) et RGB(164, 194, 244) ?

oui ce sont bien ces cellules.

et oui il y a bien d'autre couleur dans les 150 lignes de la colonne 1

Bonjour

1. Dans votre code Sub precedent, remplacez

Call y, z, Ai, Ah

par

Call test

2. Ajoutez ce code dans le module

Sub test()
Dim i As Byte
Dim col As Byte 'variable pour définir le numéro de colonne
Dim c As Long

'remettre a 0 donnees de la ligne 3 en colonnes 25, 26, 34 et 35
Range(Cells(3, 25), Cells(3, 26)).ClearContents
Range(Cells(3, 34), Cells(3, 35)).ClearContents

With Workbooks("TABLEAU SUIVI TRAVAUX DOLE.xlsx").Sheets("SUIVI")

    For i = 1 To 150 'boucle de la ligne 1 à la ligne 150

        Select Case .Cells(i, 1).Value 'on définit comme critère la valeur inscrite en cellule i de la colonne 1 (colonne A)
            Case "IMB" 'cas où la cellule contient IMB
                Select Case .Cells(i, 1).Interior.Color 'si cellule contient IMB on vérifie la couleur
                    Case Is = xlNone: col = 25 'cas sans couleur - on attribue 25 à la variable colonne
                    Case Is = RGB(164, 194, 244): col = 26 'cas avec couleur - on attribue 26 à la variable colonne
                End Select

            Case "PBRUE" 'cas où la cellule contient PBRUE
                Select Case .Cells(i, 1).Interior.Color 'si cellule contient PBRUE on vérifie la couleur
                    Case Is = xlNone: col = 34 'cas sans couleur - on attribue 34 à la variable colonne
                    Case Is = RGB(164, 194, 244): col = 35 'cas avec couleur - on attribue 35 à la variable colonne
                End Select

            End Select
        On Error Resume Next 'gestion d'erreur pour éviter un message excel si une erreur se produit
        Cells(3, col) = Cells(3, col) + 1 'on ajoute 1 à la valeur de la cellule (ligne 3, colonne définie par la variable col)
        col = 0 'on remet col à 0 avant de passer à la ligne suivante
        On Error GoTo 0 'annule la gestion d'erreur
    Next i 'on passe à la ligne suivante
End With
End Sub

Après sa me semble un peu compliquer ce code il faut savoir je suis stagiaire et mon maitre de stage comprend un peu le vba et je veux que le code reste le plus simple pour qu'il puisse le comprendre après mon départ le comprendre quand même.

Le souci c'est qu'avec les 4 codes (y, Z, AH, AI) vous refaites 4 fois la même boucle.
Donc en gros vous parcourez 600 lignes alors que vous n'en avez que 150.

Si vous voulez je peux ajouter un commentaire en face de chaque ligne.

Re,

Voilà je vous ai mis tous les commentaires dans le code placé ici --> https://forum.excel-pratique.com/s/goto/1146409

Cordialement

merci beaucoup monsieur

Rechercher des sujets similaires à "vba liaison automatique"