EXCEL VBA modifier le contenu d'une cellule d'un tableau

patrick1870 Messages postés 60 Date d'inscription dimanche 23 novembre 2014 Statut Membre Dernière intervention 22 avril 2024 - 22 avril 2024 à 14:44
yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024 - 23 avril 2024 à 13:39

Bonjour à tous


Je me lance pour la 1ère fois dans l'écriture d'une macro pour Excel.

Je me heurte à un problème : comment modifier une cellule d'un tableau en y copiant, par macro, le contenu d'une autre cellule ?
Je sais faire l'opération inverse : extraire une donnée d'un tableau et la placer dans une autre cellule.

Mes données sont placées dans deux feuilles distinctes d'un même classeur : une feuille "saisie" et une feuille "compteurs".

Voici une partie simplifiée de la macro qui devrait permettre de mieux faire comprendre mon problème, je l'espère :)
 
' MACRO "VALIDATION"

Dim compteur1 As Integer
    
    
'   1 -  récupération du compteur
    
    Sheets("saisie").Select
    Range("F5").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(R6C3,Compteurs!R3C1:R50C7,2)"
 
'   2 -  traitements divers sur les données de la feuille "saisie"
 
'   3 -  incrémentation de compteur1
    
     compteur1=compteur1 +1
     range("F5") = compteur1
'   
'    4 -  copier le contenu de F5 dans la cellule du tableau de la feuille
'         "compteurs" (la même cellule que celle utilisée pour la récupération
'          du 1- ci-dessus) ... et c'est là que je sèche ....

Merci d'avance à qui pourra m'aider.

A voir également:

2 réponses

yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024 1 477
22 avril 2024 à 15:48

bonjour,

Je ne comprends pas "la même cellule que celle utilisée pour la récupération du 1- ci-dessus".

Donne peut-être un exemple, et explique cela clairement en français.

0
yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024 1 477
Modifié le 22 avril 2024 à 16:16

Je pense que tu essaies d'obtenir ceci:

Dim tabl As Range, trouve As Range
Set tabl = Sheets("compteurs").[a3:a50]
Set trouve = tabl.Find(Sheets("saisie").[c6])
If Not trouve Is Nothing Then
    trouve.Offset(, 2) = trouve.Offset(, 2) + 1
End If
0
patrick1870 Messages postés 60 Date d'inscription dimanche 23 novembre 2014 Statut Membre Dernière intervention 22 avril 2024 10
Modifié le 22 avril 2024 à 17:18

Désolé de n'avoir pas été suffisamment clair ... je pensais m'être exprimé en français. Cela est peut-être dû au fait que je ne maîtrise pas le VBA et que je n'ai peut-être pas employé les mots exacts.

Dans le 1 - je vais chercher dans le tableau (qui est dans la feuille 'Compteurs") une donnée, en utilisant

RechercheV(contenu de la cellule C6 de la feuille "saisie"; tableau A3:G50 de la feuille "Compteurs"; 2ème colonne) **

et c'est dans  cette même cellule du tableau que je veux recopier le contenu de la cellule F5 à la fin de la macro.

Est-ce plus clair comme ça ? sinon quel genre d'exemple souhaiterais-tu ?

**  transcription de"=VLOOKUP(R6C3,Compteurs!R3C1:R50C7,2)"

0
yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024 1 477
Modifié le 23 avril 2024 à 13:38

En fait, tu décris ton code, au lieu d'expliquer le résultat que tu veux obtenir.

Un exemple d'exemple:

Soit un tableau:

123    456   789
555    888   999

la cellule C6 de la feuille "saisie" contient 555.

le but, c'est de remplacer 999 par le contenu de la cellule F5 de la feuille "saisie".

.

Suggestion, très proche de la suggestion en #2:

Set tabl = Sheets("compteurs").[a3:a50]
Set trouve = tabl.Find(Sheets("saisie").[c6])
If Not trouve Is Nothing Then
    trouve.Offset(, 2) = Sheets("saisie").[f5]
End If
0
yg_be Messages postés 22732 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 avril 2024 1 477
23 avril 2024 à 13:39

As-tu testé le code que j'ai suggéré le 22 avril 2024 à 16:15?

0