Microsoft 365 Aide debug VBA simple

Viro_Major

XLDnaute Nouveau
Bonjour,

Je tombe sur un os, pourtant avec un code VBA qui m’a l’air simple, style ActiveCell.Offset(1,6).Select déclenché suite à un changement de valeur de cellule
Sur certaines cellules, celà fonctionne comme escompté, mais sur d’autres ça n’arrive jamais à se caler sans décalage. Mystérieux...
Je sèche ! Ne voyant pas où se trouve l’erreur.

Je suis prêt à partager mon classeur mais seulement en privé. Si une âme charitable daigne jeter un oeil... merci d’avance
 
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
@Staple1600

des fois, j'ai ce message :

Image.jpg


quand ça arrive, je clique simplement sur le bouton Continuer ».

soan
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

=>soan
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Sed non risus.
Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor.
Cras elementum ultrices diam.
Maecenas ligula massa, varius a, semper congue, euismod non, mi.
PS: Je lis bien entre tes lignes, tu n'as pas trouvé où est le problème?
 
Dernière édition:

Viro_Major

XLDnaute Nouveau
Mazette. J’avais pondu une réponse de soutien lêchée mais le forum a crashé sur moi à la dernière phrase :( @soan a usé pleinement de sa jugeotte et j’adhère sans tenir rigueur, y compris pour le MP partagé. Quelle chance de ne pas avoir partagé la couleur de mes chaussettes ! Non sans rire, le contenu était anodin, la seule chose qui m’importait était de garder le fichier à diffusion restreinte, qui selon moi, ne se prêtait pas à un isolement de la logique d’amorce que j’ai pu posté car tout semblait m’indiquer qu’il s’agissait d’un conflit étrange vis à vis du reste de ma feuille

Succintement, j’avais besoin d’aide, je l’ai reçu bon gré malgré, merci, pour ma part c’est l’essentiel. J’imagine que les demandes se répètent malgré leur caractère parfois unique donc la maladresse ayant suscité de la fumée sans feu ne conduit pas à la fin du monde.
Qoiqu’il en soit, je ne pensais être susceptible de créer autant de polémique, je vais songer de ce pas à la présidentielle 2022 😜 Pour la prochaine fois, je prendrais la carte pro de @soan et je l’inviterai à Matignon pour un repas !

Toute bonne fin de weekend
 
Dernière édition:

David Aubert

XLDnaute Barbatruc
Administrateur
Modérateur
Bonjour à tous,

J'ai fait le tour des bonnes pratiques sur le net afin de clarifier ma position et l'inscrire dans la charte.

Du coup j'ai rajouté un chapitre dans la charte à ce sujet, merci d'en prendre connaissance pour les prochaines demandes :

11 - Autres points d'attention :

La messagerie privée (conversations) ne doit pas être utilisée pour des demandes d’assistances.

Ne pas suggérer aux membres de traiter leurs questions en dehors du forum en leur suggérant de les publier sur un autre forum ou en vous envoyant un e-mail ou un message privé concernant leurs problèmes. La finalité d’un forum est de partager des solutions à un problème afin que toutes autres personnes ayant le même problème ultérieurement puisse profiter de la réponse apportée au demandeur initial.

Ne publiez pas en réponse à une question simplement un lien vers un autre forum sauf si il s’agit d’un fil spécifique et pertinent.

Merci de ne pas répondre aux questions en créant des solutions ailleurs, puis en référençant ces solutions via des liens de téléchargement de fichiers. Nous vous demandons de répondre à la question dans le fil lui-même. Fournir des liens vers des articles existants sur Internet peut être acceptable si ces sites n’enfreignent pas d'autres règles.

Ne créez pas simplement un fichier avec une solution en fournissant en réponse juste un lien vers un fichier ou un site.

Les problèmes liés à la fourniture de liens vers des fichiers téléchargeables en dehors du forum sont les suivants : les liens expirent souvent après une certaine durée, de nombreux utilisateurs ne peuvent pas télécharger de fichiers à partir de sites de partage de fichiers en raison de restrictions de sécurité réseau, de nombreux utilisateurs hésitent à télécharger des fichiers pour des raisons de sécurité personnelle et les fonctionnalités de recherche du forum ne fonctionnent pas.

Si vous avez des questions, n'hésitez pas

Bonne journée

David
 

soan

XLDnaute Barbatruc
Inactif
Bonjour Viro_Major, David, le fil,

je mets ci-dessous le code VBA que j'avais fait pour ton présent exercice.

« AR » est mon abréviation de « Aller-Retour » ; c'est pas une cellule
de la colonne AR ! 😜


VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim adr$, col%, lig&
  With Target
    If .CountLarge > 1 Then Exit Sub
    adr = .Address(0, 0): col = .Column: lig = .Row
    'AR AG7-AG9 : Commissions
    If adr = "AG7" Then [AG9].Select: Exit Sub
    If adr = "AG9" Then [AG7].Select: Exit Sub
    'AR B4-E4 : Price-Capital ; AR T3-W3-Z3 : Instrument-Leverage-Increment
    If adr = "T3" Then [U2] = 1 Else If adr = "Z3" Then [U2] = 2
    If adr = "B4" Or adr = "T3" Or (adr = "W3" And [U2] = 1) Then .Offset(, 3).Select: Exit Sub
    If adr = "E4" Or adr = "Z3" Or (adr = "W3" And [U2] = 2) Then .Offset(, -3).Select: Exit Sub
    'Way L S L L : aller 1 ligne plus bas et 6 colonnes à droite ; puis de AA6 en C4
    If InStr("C2 I3 O4 U5", adr) > 0 Then .Offset(1, 6).Select: Exit Sub
    If adr = "AA6" Then [C4].Select: Exit Sub
    'colonnes I O U : 6 colonnes à droite (sauf restrictions selon n° ligne)
    If (col = 9 And lig > 5) Or (col = 15 And lig > 6) _
      Or (col = 21 And lig > 7) Then .Offset(, 6).Select: Exit Sub
    'de AA en I : 1 ligne plus bas et 18 colonnes à gauche (sauf restriction ligne)
    '=> ça passe automatiquement à la ligne suivante ; si tu préfères rester
    'sur la même ligne, supprime le 1 => met plutôt : .Offset(, -18).Select
    If col = 27 And lig > 7 Then .Offset(1, -18).Select: Exit Sub
    Dim vx$: vx = .Value: If vx = "" Then Exit Sub
    'quitter la sub si la colonne est autre que I O U ou AA,
    'car ce qui suivra ensuite ne concerne que ces colonnes.
    If col <> 9 And col <> 15 And col <> 21 And col <> 27 Then Exit Sub
    Dim dlg&, k As Byte: dlg = Cells(Rows.Count, 2).End(3).Row: k = col \ 6 + 4
    Application.ScreenUpdating = 0: Application.EnableEvents = 0
    If lig >= k And lig <= dlg Then
      If col <> 9 And .Offset(-1, -3) = "" Then .Offset(-1).ClearContents: GoTo 1
      Range(Cells(k, col), Cells(dlg, col)).ClearContents: .Value = vx
    End If
1   Application.EnableEvents = -1
  End With
End Sub
la cellule U2 sert de drapeau pour les déplacements de W3 à Z3 OU W3 à T3.
(j'ai enlevé les noms des commissions car ils me semblaient confidentiels)


soan
 
Dernière édition:

Statistiques des forums

Discussions
314 499
Messages
2 110 247
Membres
110 711
dernier inscrit
chmessi