VBA - Boite de dialogue

Bonjour,

Je n'ai que de faible base en MACRO et compagnie

Je souhaiterais donc avoir de l'aide car je cherche a faire des mises à jour automatique. Je vous mets en PJ un fichier qui marche mais qu'à moitié car je voudrais que l'action de MAJ s'applique pour tous les N° de devis identique dans les deux tableaux.

N'hésite pas à me demander des informations si besoin

Merci d'avance

33teste-maj.zip (19.69 Ko)

Salut et bienvenue sur le Forum,

Je te propose une solution dans le fichier ci-joint, avec beaucoup de commentaires dans ma macro.

NB : J'ai un peu de peine à comprendre ton titre

Cordialement.

45teste-maj-v1.zip (16.58 Ko)

Merci de la réponse, je vais regarder ça de suite.

Pour mon titre, on ne se moque pas, j'ai faits comme j'ai pu ><


Dis donc j'ai l'impression que c'est exactement ce que je cherchais !!

Merci beaucoup pour la macro et les explications !!!

J'ai encore une petite question, y a t il une manipulation spécifique à faire lors de la création du bouton et du code que vous m'avez transmis? Car j'ai transmis cette formule dans mon véritable tableau mais elle ne marche pas...

Comme je devrais moi-même chercher d’où vient le problème, il serait plus facile d’avoir ton fichier réel à disposition.

Est-ce que les deux boutons s’appellent « CommandButton1 » ? Où as-tu placé le code dans ton fichier réel ? L’as-tu copier-coller correctement ?

Et comme je ne suis pas un spécialiste des boutons Active-X, je ne sais pas – sans pouvoir essayer moi-même – s’il y a une manipulation complémentaire à faire.

Peux-tu donc m’envoyer ton fichier réel ? Si nécessaire en privé ? Ou serait-il plus facile de partir dans la direction de boutons autres que Active-X ??

A te relire.

Re,

Sur ta feuille VMT.VMAS tu as des données plus loin que la ligne 252 – ce que je ne pouvais pas deviner – et la déclaration de variable BYTE est trop limitée. Il faut donc déclarer tes variales i et j en INTERGER.

Ensuite, contrairement à ton modèle, la première ligne à traiter est sur la ligne 8 et non pas sur la ligne 2. Il faut donc modifier la boucle For/Next en conséquence.

Voici le code corrigé :

Option Explicit ' On oblige la déclaration des variables
Private Sub CommandButton21_Click()
Dim i As Integer, j As Integer ' On déclare les variables afin de gagner en rapidité

For i = 8 To Range("A" & Rows.Count).End(xlUp).Row   ' Boucle qui va de 8 à la dernière ligne remplie.
    On Error Resume Next ' Si un numéro de matricule de la feuille VMT.VMAS n'est pas trouvé sur la feuille VMTmens, il ne faut pas que ça bloque
    j = Application.WorksheetFunction.Match(Range("A" & i), Worksheets("VMTmens").Range("A:A"), 0) ' On recherche l'une après l'autre la position des numéros de matricule de la feuille VMT.VMAS sur la feuille VMTmens et on l'affecte à la variable j.
    If j > 0 Then ' Si aucune correspondance n'a été trouvée sur la feuille VMTmens, j garde sa valeur 0. Donc on continune seulement si un devis correspondant a été trouvé
        Range("H" & i) = Worksheets("VMTmens").Range("L" & j) ' On affecte à la cellule de la colonne H de la feuille VMT.VMAS la valeur de la cellule de la colonne L de la ligne sur laquelle a été trouvé le numéro de matricule de la feuille VMTmens.
        ' Donc si j = 0 ça ne passe pas par cette ligne entre If et End if et la cellule de la colonne H de la feuille VMT.VMAS n'est pas modifiée.
    End If

    j = 0 ' Remise à zéro de la valeur de la variable j

Next i
End Sub

Cordialement

D'accord, merci de vos explications. A titre d'info, j'avais déplacé sur l'ancien fichier justement à la ligne 8 et même avec le i = 2 to, cela marchait.

Ca à l'air de bien fonctionner cette fois, je te remercie grandement !! C'était un véritable casse tête pour moi ^^

Ca fonctionnait malgré ton i = 2 to …. par hasard et par bonheur. Il suffise que tu oublies que tu as laissé cette erreur volontaire et que tu places un numéro de contrat pour une autre raison dans la plage A2:A6 d'ici 5 ou 6 ans et ça peut f.... la m….. sans que tu ne comprennes pourquoi. Enfin, ça peut être embétant au minimum

Prends l’habitude – lorsque tu travailles avec Excel, spécialement avec les macros – d’être d’une précision horlogère helvétique

Amicalement.

Rechercher des sujets similaires à "vba boite dialogue"