Macro vba
Résolu/Fermé
jj341
Messages postés
10
Date d'inscription
mardi 31 mars 2009
Statut
Membre
Dernière intervention
2 juillet 2021
-
Modifié le 1 juil. 2021 à 10:05
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 - 2 juil. 2021 à 21:16
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 - 2 juil. 2021 à 21:16
A voir également:
- Macro vba
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Macro recorder - Télécharger - Confidentialité
- Convertir chiffre en lettre excel sans macro ✓ - Forum Excel
7 réponses
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
Modifié le 2 juil. 2021 à 16:32
Modifié le 2 juil. 2021 à 16:32
Re,
normal, Range("C") ne veut rien dire puisque tu détermines le colonne C mais pas la ligne.
En fait tu devrais par exemple écrire Range("C2") pour faire référence à une adresse bien précise.
Il en est de même pour les lignes suivantes
Range("F"
ou
Range("P" etc ...
normal, Range("C") ne veut rien dire puisque tu détermines le colonne C mais pas la ligne.
En fait tu devrais par exemple écrire Range("C2") pour faire référence à une adresse bien précise.
Il en est de même pour les lignes suivantes
Range("F"
ou
Range("P" etc ...
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
Modifié le 1 juil. 2021 à 10:13
Modifié le 1 juil. 2021 à 10:13
Bonjour,
comme cela
mais tu peux utiliser la syntaxe événementielle
Private Sub Worksheet_Change(ByVal Target As Range)
si en F8 tu installes par exemple une liste de validation
ou encore avec un clic droit en F8 pour déclencher le code avec
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
ou avec un double clic en F8
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
comme cela
Sub Archivage() Sheets(Range("F8").Value).Activate End Sub
mais tu peux utiliser la syntaxe événementielle
Private Sub Worksheet_Change(ByVal Target As Range)
si en F8 tu installes par exemple une liste de validation
ou encore avec un clic droit en F8 pour déclencher le code avec
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
ou avec un double clic en F8
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
jj341
Messages postés
10
Date d'inscription
mardi 31 mars 2009
Statut
Membre
Dernière intervention
2 juillet 2021
Modifié le 1 juil. 2021 à 10:27
Modifié le 1 juil. 2021 à 10:27
Merci pour ton retour Mike-31, je vais essayer cette solution.
Par contre je ne suis pas l'auteur de l'autre sujet et la problématique n'est pas la même.
Encore merci pour ton aide et bonne journée! :)
Par contre je ne suis pas l'auteur de l'autre sujet et la problématique n'est pas la même.
Encore merci pour ton aide et bonne journée! :)
jj341
Messages postés
10
Date d'inscription
mardi 31 mars 2009
Statut
Membre
Dernière intervention
2 juillet 2021
2 juil. 2021 à 16:12
2 juil. 2021 à 16:12
J'ai retravaillé la macro qui est la suivante:
Sub MAJ()
'
' MAJ Macro
'
If Sheets("Liste").Range("C").Value = Sheets("Liste N-1").Range("C").Value Then
Range("F", Sheets("Liste")).Value = Range("F", Sheets("Liste N-1")).Value
Range("P", Sheets("Liste")).Value = Range("P", Sheets("Liste N-1")).Value
Range("AF", Sheets("Liste")).Value = Range("AF", Sheets("Liste N-1")).Value
Range("AL", Sheets("Liste")).Value = Range("AL", Sheets("Liste N-1")).Value
Range("BZ", Sheets("Liste")).Value = Range("BZ", Sheets("Liste N-1")).Value
Else
Rows(c.Row).Copy Sheets("MAJ").Range("a" & Sheets("MAJ").Cells(Sheets("MAJ").Rows.Count, 1).End(xlUp).Row + 1)
End If
End Sub
Cependant la ligne en gras pose problème, auriez-vous une idée?
Sub MAJ()
'
' MAJ Macro
'
If Sheets("Liste").Range("C").Value = Sheets("Liste N-1").Range("C").Value Then
Range("F", Sheets("Liste")).Value = Range("F", Sheets("Liste N-1")).Value
Range("P", Sheets("Liste")).Value = Range("P", Sheets("Liste N-1")).Value
Range("AF", Sheets("Liste")).Value = Range("AF", Sheets("Liste N-1")).Value
Range("AL", Sheets("Liste")).Value = Range("AL", Sheets("Liste N-1")).Value
Range("BZ", Sheets("Liste")).Value = Range("BZ", Sheets("Liste N-1")).Value
Else
Rows(c.Row).Copy Sheets("MAJ").Range("a" & Sheets("MAJ").Cells(Sheets("MAJ").Rows.Count, 1).End(xlUp).Row + 1)
End If
End Sub
Cependant la ligne en gras pose problème, auriez-vous une idée?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jj341
Messages postés
10
Date d'inscription
mardi 31 mars 2009
Statut
Membre
Dernière intervention
2 juillet 2021
Modifié le 2 juil. 2021 à 16:55
Modifié le 2 juil. 2021 à 16:55
Merci de ton retour mais ça ne marche toujours pas, une autre ligne est surlignée en jaune.
Sub MAJ()
'
' MAJ Macro
'
If Sheets("Liste").Range("C2").Value = Sheets("Liste N-1").Range("C2").Value Then
Range("F2", Sheets("Liste")).Value = Range("F2", Sheets("Liste N-1")).Value
Range("P2", Sheets("Liste")).Value = Range("P2", Sheets("Liste N-1")).Value
Range("AF2", Sheets("Liste")).Value = Range("AF2", Sheets("Liste N-1")).Value
Range("AL2", Sheets("Liste")).Value = Range("AL2", Sheets("Liste N-1")).Value
Range("BZ2", Sheets("Liste")).Value = Range("BZ2", Sheets("Liste N-1")).Value
Else
Rows(c.Row).Copy Sheets("MAJ").Range("a" & Sheets("MAJ").Cells(Sheets("MAJ").Rows.Count, 1).End(xlUp).Row + 1)
End If
End Sub
Sub MAJ()
'
' MAJ Macro
'
If Sheets("Liste").Range("C2").Value = Sheets("Liste N-1").Range("C2").Value Then
Range("F2", Sheets("Liste")).Value = Range("F2", Sheets("Liste N-1")).Value
Range("P2", Sheets("Liste")).Value = Range("P2", Sheets("Liste N-1")).Value
Range("AF2", Sheets("Liste")).Value = Range("AF2", Sheets("Liste N-1")).Value
Range("AL2", Sheets("Liste")).Value = Range("AL2", Sheets("Liste N-1")).Value
Range("BZ2", Sheets("Liste")).Value = Range("BZ2", Sheets("Liste N-1")).Value
Else
Rows(c.Row).Copy Sheets("MAJ").Range("a" & Sheets("MAJ").Cells(Sheets("MAJ").Rows.Count, 1).End(xlUp).Row + 1)
End If
End Sub
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
Modifié le 2 juil. 2021 à 17:05
Modifié le 2 juil. 2021 à 17:05
Re,
il faut commencer par identifier l'onglet puis l'adresse cellule
If Sheets("Liste").Range("C2").Value = Sheets("Liste N-1").Range("C2").Value Then
dans le code remplace les virgules par des points
et idem pour les lignes suivantes
il faut commencer par identifier l'onglet puis l'adresse cellule
If Sheets("Liste").Range("C2").Value = Sheets("Liste N-1").Range("C2").Value Then
dans le code remplace les virgules par des points
et idem pour les lignes suivantes
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
2 juil. 2021 à 21:16
2 juil. 2021 à 21:16
Re,
en attendant d'en savoir plus sur ton projet
Sub MAJ()
'
If Sheets("Liste").Range("C2").Value = Sheets("Liste N-1").Range("C2").Value Then
Sheets("Liste").Range("F2").Value = Sheets("Liste N-1").Range("F2").Value
Sheets("Liste").Range("P2").Value = Sheets("Liste N-1").Range("P2").Value
Sheets("Liste").Range("AF2").Value = Sheets("Liste N-1").Range("AF2").Value
Sheets("Liste").Range("AL2").Value = Sheets("Liste N-1").Range("AL2").Value
Sheets("Liste").Range("BZ2").Value = Sheets("Liste N-1").Range("BZ2").Value
Else
'par contre tu peux expliquer ce que tu veux faire avec cette ligne
'Rows(c.Row).Copy Sheets("MAJ").Range("a" & Sheets("MAJ").Cells(Sheets("MAJ").Rows.Count, 1).End(xlUp).Row + 1)
End If
End Sub
en attendant d'en savoir plus sur ton projet
Sub MAJ()
'
If Sheets("Liste").Range("C2").Value = Sheets("Liste N-1").Range("C2").Value Then
Sheets("Liste").Range("F2").Value = Sheets("Liste N-1").Range("F2").Value
Sheets("Liste").Range("P2").Value = Sheets("Liste N-1").Range("P2").Value
Sheets("Liste").Range("AF2").Value = Sheets("Liste N-1").Range("AF2").Value
Sheets("Liste").Range("AL2").Value = Sheets("Liste N-1").Range("AL2").Value
Sheets("Liste").Range("BZ2").Value = Sheets("Liste N-1").Range("BZ2").Value
Else
'par contre tu peux expliquer ce que tu veux faire avec cette ligne
'Rows(c.Row).Copy Sheets("MAJ").Range("a" & Sheets("MAJ").Cells(Sheets("MAJ").Rows.Count, 1).End(xlUp).Row + 1)
End If
End Sub