Visual basic appliqmacro à toute une feuille
jéjéhand
-
michel_m Messages postés 18903 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 18903 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.