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 12375 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
A voir également:

4 réponses

Le Pingou Messages postés 12375 Date d'inscription   Statut Contributeur Dernière intervention   1 476
 
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
Le Pingou Messages postés 12375 Date d'inscription   Statut Contributeur Dernière intervention   1 476
 
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
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
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
Le Pingou Messages postés 12375 Date d'inscription   Statut Contributeur Dernière intervention   1 476
 
Bonjour,
Pour moi c'est le meilleur moyen.
Salutations.
Le Pingou
0