Correction code en VBA excell

Résolu
hakimr Messages postés 261 Date d'inscription   Statut Membre Dernière intervention   -  
Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je veux bien corriger code :
Sub Groupe59_QuandClic()
Dim sh As Worksheet
Dim L As Hyperlink
Dim exclapos As Integer
Dim strFPrec As String
ActiveSheet.Copy after:=Sheets(Sheets.Count)
If [C7].Value = 12 Then
[C7].Value = 1
[a6].Value = [a6].Value + 1
[K1636].Value = 0
Else
[C7].Value = [C7].Value + 1
[K1636].Value = [K1638].Value
End If
If [C7].Value = 1 Then
[C1674].Value = 0
[K1636].Value = 0
[B833].Value = 0
[A7].Value = [A7].Value + 1
[A837].Value = [A837].Value + 1
Else
[C1674].Value = [C1673].Value
[B833].Value = [D833].Value
End If
[A832].Value = [C832].Value
[D1674].Value = [E1673].Value
[E833].Value = [E832].Value
test = Application.Proper(Format(Range("e768"), "mmm-yyyy"))
ActiveSheet.Name = test
'On défini la feuille active
If [C7].Value = 12 Then
ActiveSheet.Shapes("Clôture").Visible = True
Else
ActiveSheet.Shapes("Clôture").Visible = False
End If
Set sh = ActiveSheet
Debug.Print (sh.Name)
'On boucle sur chaque lien de la feuille
For Each L In sh.Hyperlinks
'On trouve l'emplacement du !
exclapos = InStr(1, L.SubAddress, "!", vbTextCompare)
'Nom de la feuille précédente
strFPrec = Mid(L.SubAddress, 1, exclapos - 1)
'On remplace par le nom de la feuille actuelle
L.SubAddress = Replace(L.SubAddress, strFPrec, "'" & sh.Name & "'")
Next
Select Case [C7].Value
Case Is = 3, 5, 8, 11
ActiveSheet.Shapes("Groupe 55").Visible = True
ActiveSheet.Shapes("Picture 863").Visible = True
Case Else
ActiveSheet.Shapes("Groupe 55").Visible = False
ActiveSheet.Shapes("Picture 863").Visible = False
End Select
End Sub.
ça marche bien mais lors d'inserrer ou bien supprimer des lignes il ya transmission de faux valeurs.
merci.

Configuration: Windows / Chrome 49.0.2623.112

4 réponses

  1. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    Merci du retour. Je pense que dans se cas vous devez créer pour chaque cellules une variable qui vous permet d'ajouter ou soustraire le nombre de ligne .
    Exemple VA8 correspond l'adresse :A837 je supprime 2 lignes donc VA8 ="[A"&837-2] et ainsi de suite.
    Une autre possibilité est de nommée toutes vos cellules et dans le code vous utilisez les noms des cellules; à vous de tester (pas de classeur pour le faire.)

    1
  2. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
     
    Bonjour,
    En premier, le code se mets entre les balises de code

    Expl:
    Sub Groupe59_QuandClic()
    Dim sh As Worksheet
    Dim L As Hyperlink
    Dim exclapos As Integer
    Dim strFPrec As String
    ActiveSheet.Copy after:=Sheets(Sheets.Count)
    If [C7].Value = 12 Then


    Vous dite : je veux bien corriger code : alors c'est quoi qui ne marche pas et où?
    0
  3. hakimr Messages postés 261 Date d'inscription   Statut Membre Dernière intervention   10
     
    Bonjour
    ca marche mais avant d’exécuter le code en cliquant sur le bouton et si je supprime ou inserrer des lignes par exemple [A837].Value = [A837].Value + 1 donne a fausse valeur(cad A837 deviend A838 ou A836)
    les lignes du N°769 j'usqua ligne N°1700 parfois je supprime ou bien j'inserre des lignes avant d'executer le code.
    merci.
    0
  4. hakimr Messages postés 261 Date d'inscription   Statut Membre Dernière intervention   10
     
    Ok
    je vais tester de nommée les cellules, est ce qui'il ya autre truc?
    merci
    0
    1. Le Pingou Messages postés 12276 Date d'inscription   Statut Contributeur Dernière intervention   1 478
       
      Bonjour,
      Pour moi c'est le meilleur moyen.
      Salutations.
      Le Pingou
      0