Correction code en VBA excell

Résolu/Fermé
hakimr Messages postés 259 Date d'inscription lundi 1 mai 2017 Statut Membre Dernière intervention 17 août 2024 - Modifié le 2 août 2021 à 12:29
Le Pingou Messages postés 12155 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 septembre 2024 - 2 août 2021 à 18:30
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 12155 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 septembre 2024 1 448
Modifié le 2 août 2021 à 17:18
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 12155 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 septembre 2024 1 448
2 août 2021 à 13:27
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 259 Date d'inscription lundi 1 mai 2017 Statut Membre Dernière intervention 17 août 2024 9
Modifié le 2 août 2021 à 14:33
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 259 Date d'inscription lundi 1 mai 2017 Statut Membre Dernière intervention 17 août 2024 9
2 août 2021 à 18:24
Ok
je vais tester de nommée les cellules, est ce qui'il ya autre truc?
merci
0
Le Pingou Messages postés 12155 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 29 septembre 2024 1 448
2 août 2021 à 18:30
Bonjour,
Pour moi c'est le meilleur moyen.
Salutations.
Le Pingou
0