Modifier une cellule selon critere dur dur dur

Sophie11

XLDnaute Occasionnel
Bonjour,
J'ai un tableau qui a quelques fois 2 valeurs identique dans la colonne A avec tjrs la 2ieme ligne pas renseigné.
J'aimerais créer une macro qui me permette de modifier ce tableau de la facon suivante: (voir fichier joint)

Je voudrais modifier la valeur de ma cellule C3 par ma valeur de E3
Et ensuite remplacer la cellule vide du dessous B4 par la nouvelle valeur de C3

De la mm facon remplacer C5 par E5
et B6 par la nouvelle valeur de C5

Mon idée a premiere vue serait de scanné la colonne A et lorsque elle voit 2 valeurs identique on se décale sur la colonne C, on procède au modification et on continue la boucle.

J'ai mis dans "finish" ce que j'attends comme resultat mais je souhterais que les modifs se font directement sur mon tableau en page principale (onglet sophie)


Merci d'avance pour votre aide :) :)
 

Pièces jointes

  • helpso.xls
    14 KB · Affichages: 63

ROGER2327

XLDnaute Barbatruc
Re : Modifier une cellule selon critere dur dur dur

Bonsoir Sophie11
Essayez cette procédure :
Code:
[COLOR="DarkSlateGray"][B]Sub toto()
Dim oDat, i&
   oDat = Range("DATA").Value
   For i = 1 To UBound(oDat, 1) - 1
      If oDat(i, 1) = oDat(i + 1, 1) Then
         oDat(i, 3) = oDat(i, 5)
         oDat(i + 1, 2) = oDat(i, 5)
         i = i + 1
      End If
   Next
   Range("DATA").Value = oDat
End Sub[/B][/COLOR]
dans laquelle DATA désigne la plage nommée
Code:
[B]=DECALER(sophie!$A$1:$E$1;;;NBVAL(sophie!$A:$A);)[/B]
.​
ROGER2327
#3840


Mercredi 18 Gidouille 137 (Visitation de Mère Ubu, SS)
14 Messidor An CCXVIII
2010-W26-5T21:10:26Z
 

Sophie11

XLDnaute Occasionnel
Re : Modifier une cellule selon critere dur dur dur

Impossible d'exécuter le code, j'obtient une erreur :
Run-time error 1004
Method Range of object _Global failed

Pourtant j'ai bien déclarer la plage DATA, je comprends pas du tout :(
 

ROGER2327

XLDnaute Barbatruc
Re : Modifier une cellule selon critere dur dur dur

Re...
Impossible de reproduire l'erreur que vous signalez dans votre classeur (que je joins ci-dessous).​
ROGER2327
#3858


Samedi 21 Gidouille 137 (Saint Spéculum, confesseur, SQ)
17 Messidor An CCXVIII
2010-W27-1T08:17:31Z
 

Pièces jointes

  • Sophie11_3858.xls
    19 KB · Affichages: 52

Sophie11

XLDnaute Occasionnel
Re : Modifier une cellule selon critere dur dur dur

yes, étant anglaise ma version est en anglais et j'ai oublie de "traduire" les formules.
effectivement ça marche bien OFFSET = DECALER et COUNTA = NBVAL :) :) :) :p merci :)

Pour ma culture personnelle, si maintenant je veux faire une opération comme dans l exemple ci-joint.
je voudrais additionner E+F dans C et repris dans B.
Est-il possible de faire ;

Code:
Sub toto()
Dim oDat, i&
   oDat = Range("DATA").Value
   For i = 1 To UBound(oDat, 1) - 1
      If oDat(i, 1) = oDat(i + 1, 1) Then
         oDat(i, 3) = oDat(i, 5) [COLOR="red"][B]+ oDat(i, 6)[/B][/COLOR]
         oDat(i + 1, 2) = oDat(i, 5) [COLOR="Red"][B]+ oDat(i, 6)[/B][/COLOR]
         i = i + 1
      End If
   Next
   Range("DATA").Value = oDat
End Sub



Merci d'avance
 

ROGER2327

XLDnaute Barbatruc
Re : Modifier une cellule selon critere dur dur dur

Re...
Si vous utilisez une colonne de données supplémentaires (colonne F), il faut modifier la plage nommée
Code:
[COLOR="DarkSlateGray"][B]=DECALER(sophie!$A$1:$[COLOR="Red"]E[/COLOR]$1;;;NBVAL(sophie!$A:$A);)[/B][/COLOR]
en
Code:
[COLOR="DarkSlateGray"][B]=DECALER(sophie!$A$1:$[COLOR="Red"]F[/COLOR]$1;;;NBVAL(sophie!$A:$A);)[/B][/COLOR]
.
Essayez, je pense que ça devrait suffire.​
ROGER2327
#3979


Lundi 16 Tatane 137 (Transfig. de Saint Vincent van Gogh, transmutateur, SQ)
11 Thermidor An CCXVIII
2010-W30-4T20:11:11Z
 

Discussions similaires

Statistiques des forums

Discussions
312 514
Messages
2 089 225
Membres
104 069
dernier inscrit
kit.survie