Visual basic appliqmacro à toute une feuille
jéjéhand
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai une feuille excel, j'aimerais qu'une mise à jour soit effectuée à toutes les cellules de la feuille. pour le moment voila a quoi ressemble ma macro:
Sub MAJSAISIE Macro()
ActiveCell.FormulaR1C1 = _
"=IF(RC4<>"""",VLOOKUP(RC4,CONSTANTE!R8C1:R534C13,2,FALSE),"""")"
Range("E4").Select
End Sub
C'est comme si je faisais un double clique sur la cellule. Est-il possible de dupliquer cette formule à toute la feuille pour les cellules de la colonne E?
merci
J'ai une feuille excel, j'aimerais qu'une mise à jour soit effectuée à toutes les cellules de la feuille. pour le moment voila a quoi ressemble ma macro:
Sub MAJSAISIE Macro()
ActiveCell.FormulaR1C1 = _
"=IF(RC4<>"""",VLOOKUP(RC4,CONSTANTE!R8C1:R534C13,2,FALSE),"""")"
Range("E4").Select
End Sub
C'est comme si je faisais un double clique sur la cellule. Est-il possible de dupliquer cette formule à toute la feuille pour les cellules de la colonne E?
merci
A voir également:
- Visual basic appliqmacro à toute une feuille
- Visual basic - Télécharger - Langages
- Visual basic editor - Télécharger - Langages
- Visual petanque - Télécharger - Sport
- Microsoft 365 basic - Accueil - Microsoft Office
- Visual c++ 2019 - Guide
2 réponses
bonjour,
de cette manière :
Sub MAJSAISIE Macro()
ActiveCell.FormulaR1C1 = _
"=IF(RC4<>"""",VLOOKUP(RC4,CONSTANTE!R8C1:R534C13,2,FALSE),"""")"
Range("E4").Select
selection.copy
range(cells(4,4),cells(60000,4)).select
activesheet.paste
Range("E4").Select
End Sub
de cette manière :
Sub MAJSAISIE Macro()
ActiveCell.FormulaR1C1 = _
"=IF(RC4<>"""",VLOOKUP(RC4,CONSTANTE!R8C1:R534C13,2,FALSE),"""")"
Range("E4").Select
selection.copy
range(cells(4,4),cells(60000,4)).select
activesheet.paste
Range("E4").Select
End Sub
Bonjour
pourquoi écrire une formule ? est ce la valeur que tu recherches sous condition?
sinon pour recopier une formule pas la peine d'utiliser VBA....
dans quelle colonne veux tu les valeurs extraites
en attendant proposition de code avec restitution colonne F
Evite au grand maximum les select-selection et les copy paste très lents et mangeurs de mémoire
Si tu veux d'autres explications, tu dis...
Michel
pourquoi écrire une formule ? est ce la valeur que tu recherches sous condition?
sinon pour recopier une formule pas la peine d'utiliser VBA....
dans quelle colonne veux tu les valeurs extraites
en attendant proposition de code avec restitution colonne F
Sub tasaisie() Dim derlig As Integer, cptr As Integer Dim dico As Object Dim ref, xxx Set dico = CreateObject("scripting.dictionary") 'on crée un couple reférence (ref), valeur cherchée (xxx) With Sheets("constante") For cptr = 8 To 31 ref = .Cells(cptr, "A") xxx = .Cells(cptr, "B").Value 'évite les doublons If Not dico.exists(ref) Then dico.Add ref, xxx Next End With Application.ScreenUpdating = False 'fige le défilement de l'écran With Sheets(1) derlig = .Range("E540").End(xlUp).Row .Range("F3:F" & 540).ClearContents 'restitution For cptr = 3 To derlig ref = .Cells(cptr, "E") 'si la reference existe If dico.exists(ref) Then .Cells(cptr, "F") = dico(ref) End If Next End With End Sub
Evite au grand maximum les select-selection et les copy paste très lents et mangeurs de mémoire
Si tu veux d'autres explications, tu dis...
Michel
Sub MAJSAISIE()
ActiveCell.FormulaR1C1 = _
"=IF(RC4<>"""",VLOOKUP(RC4,CONSTANTE!R8C1:R534C13,2,FALSE),"""")"
Range("E4").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC4<>"""",VLOOKUP(RC4,CONSTANTE!R8C1:R534C13,2,FALSE),"""")"
Range("E5").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC4<>"""",VLOOKUP(RC4,CONSTANTE!R8C1:R534C13,2,FALSE),"""")"
Range("E6").Select
End sub ()
Au lieu de faire toute les lignes, j'aimerai avoir le code qui actualise les lignes de 1 à n par exemple.