Excel, extraction d'un bloque de 4 cellules
Fermé
julienbat
Messages postés
5
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
26 novembre 2007
-
22 nov. 2007 à 14:56
julienbat Messages postés 5 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 26 novembre 2007 - 26 nov. 2007 à 09:40
julienbat Messages postés 5 Date d'inscription jeudi 22 novembre 2007 Statut Membre Dernière intervention 26 novembre 2007 - 26 nov. 2007 à 09:40
A voir également:
- Excel, extraction d'un bloque de 4 cellules
- Formule excel pour additionner plusieurs cellules - Guide
- Liste déroulante excel - Guide
- Bloquer des cellules excel - Guide
- Code puk bloqué - Guide
- Excel cellule couleur si condition texte - Guide
6 réponses
Hello Julien
N'étant pas un roi du VBA, je te propose une solution basée sur des formule (vers UK, je ne connais pas l'équivalent Fr).
J'ajouterai ligne au dessus du tableau.
Là la formule MAX (range) en D4(par exemple)
Puis colonne à côté de tes moyennes IF (moyenne = $D$4;"OK";)
pour la colonne suivante, j'imagine que tu désires connaitre les 4 valeurs constitutives de la moyenne.
Mon colonne avec mes valeurs sont en C4 ->C26
La colonne avec le test de Max et le OK est en E4 ->E26
La formule magique pour moi est =IF(OR(E10="OK";E9="OK";E8="OK";E7="OK");C10;0)
Tu la mets en F10 et puis drag and drop jusqu'au bout.
Si tu fais de la sorte, cela marche, mais tu trouvera le max au milième près.
Si c'est ç l'unité, je te propose de tout arrondir avec un round ou INT..
A toi de voir.
Bien à toi.
Pierre
N'étant pas un roi du VBA, je te propose une solution basée sur des formule (vers UK, je ne connais pas l'équivalent Fr).
J'ajouterai ligne au dessus du tableau.
Là la formule MAX (range) en D4(par exemple)
Puis colonne à côté de tes moyennes IF (moyenne = $D$4;"OK";)
pour la colonne suivante, j'imagine que tu désires connaitre les 4 valeurs constitutives de la moyenne.
Mon colonne avec mes valeurs sont en C4 ->C26
La colonne avec le test de Max et le OK est en E4 ->E26
La formule magique pour moi est =IF(OR(E10="OK";E9="OK";E8="OK";E7="OK");C10;0)
Tu la mets en F10 et puis drag and drop jusqu'au bout.
Si tu fais de la sorte, cela marche, mais tu trouvera le max au milième près.
Si c'est ç l'unité, je te propose de tout arrondir avec un round ou INT..
A toi de voir.
Bien à toi.
Pierre
julienbat
Messages postés
5
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
26 novembre 2007
22 nov. 2007 à 15:28
22 nov. 2007 à 15:28
Waou! Quelle rapidité!
Je vais essayer ta solution et te redis au plus vite!
Mille merci,
Cordialement,
j.
Je vais essayer ta solution et te redis au plus vite!
Mille merci,
Cordialement,
j.
julienbat
Messages postés
5
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
26 novembre 2007
22 nov. 2007 à 16:16
22 nov. 2007 à 16:16
Hello Pierre,
Encore merci pour ta réponse,
Cependant, je ne suis pas certain d'avoir tout saisi.
Dans mon exemple:
Max=65.45
01.01.2008 01:00 46.91 36.94
01.01.2008 02:00 37.24 32.93
01.01.2008 03:00 32.68 30.91
01.01.2008 04:00 30.93 27.37
01.01.2008 05:00 30.89 25.42
01.01.2008 06:00 29.13 24.62
01.01.2008 07:00 18.55 26.63
01.01.2008 08:00 23.11 33.33
01.01.2008 09:00 27.68 41.98
01.01.2008 10:00 37.18 48.46
01.01.2008 11:00 45.34 50.61
01.01.2008 12:00 57.72 49.45
01.01.2008 13:00 53.59 44.87
01.01.2008 14:00 45.78 43.21
01.01.2008 15:00 40.71 47.96
01.01.2008 16:00 39.41 55.49
01.01.2008 17:00 46.95 62.63
01.01.2008 18:00 64.77 65.45
01.01.2008 19:00 70.83 62.54
01.01.2008 20:00 67.98 60.20
01.01.2008 21:00 58.21 55.70
01.01.2008 22:00 53.14 52.55
...
il faut donc que mon nouveau fichier commence par les 4 valeurs suivantes:
01.01.2008 18:00 64.77 65.45
01.01.2008 19:00 70.83 62.54
01.01.2008 20:00 67.98 60.20
01.01.2008 21:00 58.21 55.70
et l'autre fichier ne contient plus que les valeurs suivantes:
01.01.2008 01:00 46.91 36.94
01.01.2008 02:00 37.24 32.93
01.01.2008 03:00 32.68 30.91
01.01.2008 04:00 30.93 27.37
01.01.2008 05:00 30.89 25.42
01.01.2008 06:00 29.13 24.62
01.01.2008 07:00 18.55 26.63
01.01.2008 08:00 23.11 33.33
01.01.2008 09:00 27.68 41.98
01.01.2008 10:00 37.18 48.46
01.01.2008 11:00 45.34 50.61
01.01.2008 12:00 57.72 49.45
01.01.2008 13:00 53.59 44.87
01.01.2008 14:00 45.78 43.21
01.01.2008 15:00 40.71 47.96
01.01.2008 16:00 39.41 55.49
01.01.2008 17:00 46.95 62.63
01.01.2008 22:00 53.14 52.55
Puis la prochaine moyenne max est 62.63. Je ne peux cependant pas la prendre puisque j'ai déja enlevé les valeurs qui ont servi à ça moyenne (test sur les heures qui doivent se suivrent). Je continue donc ma "quête" et je tombe sur: 55.49 mais pour les même raison, je ne peux la prendre. je continue et tombe sur: 50.61, je peux les prendre et les mettre dans mon nouveau fichier:
01.01.2008 18:00 64.77 65.45
01.01.2008 19:00 70.83 62.54
01.01.2008 20:00 67.98 60.20
01.01.2008 21:00 58.21 55.70
01.01.2008 11:00 45.34 50.61
01.01.2008 12:00 57.72 49.45
01.01.2008 13:00 53.59 44.87
01.01.2008 14:00 45.78 43.21
je continue avec mon fichier principal qui a la tête suivante:
01.01.2008 01:00 46.91 36.94
01.01.2008 02:00 37.24 32.93
01.01.2008 03:00 32.68 30.91
01.01.2008 04:00 30.93 27.37
01.01.2008 05:00 30.89 25.42
01.01.2008 06:00 29.13 24.62
01.01.2008 07:00 18.55 26.63
01.01.2008 08:00 23.11 33.33
01.01.2008 09:00 27.68 41.98
01.01.2008 10:00 37.18 48.46
01.01.2008 15:00 40.71 47.96
01.01.2008 16:00 39.41 55.49
01.01.2008 17:00 46.95 62.63
01.01.2008 22:00 53.14 52.55
La prochaine moyenne max qui a 4 valeurs qui se suivent est 36.94
Mon nouveau fichier se présente ainsi comme cela:
01.01.2008 18:00 64.77 65.45
01.01.2008 19:00 70.83 62.54
01.01.2008 20:00 67.98 60.20
01.01.2008 21:00 58.21 55.70
01.01.2008 11:00 45.34 50.61
01.01.2008 12:00 57.72 49.45
01.01.2008 13:00 53.59 44.87
01.01.2008 14:00 45.78 43.21
01.01.2008 01:00 46.91 36.94
01.01.2008 02:00 37.24 32.93
01.01.2008 03:00 32.68 30.91
01.01.2008 04:00 30.93 27.37
et le vieux:
01.01.2008 05:00 30.89 25.42
01.01.2008 06:00 29.13 24.62
01.01.2008 07:00 18.55 26.63
01.01.2008 08:00 23.11 33.33
01.01.2008 09:00 27.68 41.98
01.01.2008 10:00 37.18 48.46
01.01.2008 15:00 40.71 47.96
01.01.2008 16:00 39.41 55.49
01.01.2008 17:00 46.95 62.63
01.01.2008 22:00 53.14 52.55
Enfin la moyenne mx qui reste avec 4 valeurs qui se suivent est 26.63
Mon nouveau fichier se présente donc finalement de la sorte:
01.01.2008 18:00 64.77 65.45
01.01.2008 19:00 70.83 62.54
01.01.2008 20:00 67.98 60.20
01.01.2008 21:00 58.21 55.70
01.01.2008 11:00 45.34 50.61
01.01.2008 12:00 57.72 49.45
01.01.2008 13:00 53.59 44.87
01.01.2008 14:00 45.78 43.21
01.01.2008 01:00 46.91 36.94
01.01.2008 02:00 37.24 32.93
01.01.2008 03:00 32.68 30.91
01.01.2008 04:00 30.93 27.37
01.01.2008 07:00 18.55 26.63
01.01.2008 08:00 23.11 33.33
01.01.2008 09:00 27.68 41.98
01.01.2008 10:00 37.18 48.46
Ce qui reste dans le vieux:
01.01.2008 05:00 30.89 25.42
01.01.2008 06:00 29.13 24.62
01.01.2008 15:00 40.71 47.96
01.01.2008 16:00 39.41 55.49
01.01.2008 17:00 46.95 62.63
01.01.2008 22:00 53.14 52.55
Ces moyennes ne seront pas classées puisqu'il n'y a pas 4 valeurs qui se suivent.
Voilà mon "gros problème", j'espère que c'est pas trop brouillon comme explication et merci pour l'aide!
J.
Encore merci pour ta réponse,
Cependant, je ne suis pas certain d'avoir tout saisi.
Dans mon exemple:
Max=65.45
01.01.2008 01:00 46.91 36.94
01.01.2008 02:00 37.24 32.93
01.01.2008 03:00 32.68 30.91
01.01.2008 04:00 30.93 27.37
01.01.2008 05:00 30.89 25.42
01.01.2008 06:00 29.13 24.62
01.01.2008 07:00 18.55 26.63
01.01.2008 08:00 23.11 33.33
01.01.2008 09:00 27.68 41.98
01.01.2008 10:00 37.18 48.46
01.01.2008 11:00 45.34 50.61
01.01.2008 12:00 57.72 49.45
01.01.2008 13:00 53.59 44.87
01.01.2008 14:00 45.78 43.21
01.01.2008 15:00 40.71 47.96
01.01.2008 16:00 39.41 55.49
01.01.2008 17:00 46.95 62.63
01.01.2008 18:00 64.77 65.45
01.01.2008 19:00 70.83 62.54
01.01.2008 20:00 67.98 60.20
01.01.2008 21:00 58.21 55.70
01.01.2008 22:00 53.14 52.55
...
il faut donc que mon nouveau fichier commence par les 4 valeurs suivantes:
01.01.2008 18:00 64.77 65.45
01.01.2008 19:00 70.83 62.54
01.01.2008 20:00 67.98 60.20
01.01.2008 21:00 58.21 55.70
et l'autre fichier ne contient plus que les valeurs suivantes:
01.01.2008 01:00 46.91 36.94
01.01.2008 02:00 37.24 32.93
01.01.2008 03:00 32.68 30.91
01.01.2008 04:00 30.93 27.37
01.01.2008 05:00 30.89 25.42
01.01.2008 06:00 29.13 24.62
01.01.2008 07:00 18.55 26.63
01.01.2008 08:00 23.11 33.33
01.01.2008 09:00 27.68 41.98
01.01.2008 10:00 37.18 48.46
01.01.2008 11:00 45.34 50.61
01.01.2008 12:00 57.72 49.45
01.01.2008 13:00 53.59 44.87
01.01.2008 14:00 45.78 43.21
01.01.2008 15:00 40.71 47.96
01.01.2008 16:00 39.41 55.49
01.01.2008 17:00 46.95 62.63
01.01.2008 22:00 53.14 52.55
Puis la prochaine moyenne max est 62.63. Je ne peux cependant pas la prendre puisque j'ai déja enlevé les valeurs qui ont servi à ça moyenne (test sur les heures qui doivent se suivrent). Je continue donc ma "quête" et je tombe sur: 55.49 mais pour les même raison, je ne peux la prendre. je continue et tombe sur: 50.61, je peux les prendre et les mettre dans mon nouveau fichier:
01.01.2008 18:00 64.77 65.45
01.01.2008 19:00 70.83 62.54
01.01.2008 20:00 67.98 60.20
01.01.2008 21:00 58.21 55.70
01.01.2008 11:00 45.34 50.61
01.01.2008 12:00 57.72 49.45
01.01.2008 13:00 53.59 44.87
01.01.2008 14:00 45.78 43.21
je continue avec mon fichier principal qui a la tête suivante:
01.01.2008 01:00 46.91 36.94
01.01.2008 02:00 37.24 32.93
01.01.2008 03:00 32.68 30.91
01.01.2008 04:00 30.93 27.37
01.01.2008 05:00 30.89 25.42
01.01.2008 06:00 29.13 24.62
01.01.2008 07:00 18.55 26.63
01.01.2008 08:00 23.11 33.33
01.01.2008 09:00 27.68 41.98
01.01.2008 10:00 37.18 48.46
01.01.2008 15:00 40.71 47.96
01.01.2008 16:00 39.41 55.49
01.01.2008 17:00 46.95 62.63
01.01.2008 22:00 53.14 52.55
La prochaine moyenne max qui a 4 valeurs qui se suivent est 36.94
Mon nouveau fichier se présente ainsi comme cela:
01.01.2008 18:00 64.77 65.45
01.01.2008 19:00 70.83 62.54
01.01.2008 20:00 67.98 60.20
01.01.2008 21:00 58.21 55.70
01.01.2008 11:00 45.34 50.61
01.01.2008 12:00 57.72 49.45
01.01.2008 13:00 53.59 44.87
01.01.2008 14:00 45.78 43.21
01.01.2008 01:00 46.91 36.94
01.01.2008 02:00 37.24 32.93
01.01.2008 03:00 32.68 30.91
01.01.2008 04:00 30.93 27.37
et le vieux:
01.01.2008 05:00 30.89 25.42
01.01.2008 06:00 29.13 24.62
01.01.2008 07:00 18.55 26.63
01.01.2008 08:00 23.11 33.33
01.01.2008 09:00 27.68 41.98
01.01.2008 10:00 37.18 48.46
01.01.2008 15:00 40.71 47.96
01.01.2008 16:00 39.41 55.49
01.01.2008 17:00 46.95 62.63
01.01.2008 22:00 53.14 52.55
Enfin la moyenne mx qui reste avec 4 valeurs qui se suivent est 26.63
Mon nouveau fichier se présente donc finalement de la sorte:
01.01.2008 18:00 64.77 65.45
01.01.2008 19:00 70.83 62.54
01.01.2008 20:00 67.98 60.20
01.01.2008 21:00 58.21 55.70
01.01.2008 11:00 45.34 50.61
01.01.2008 12:00 57.72 49.45
01.01.2008 13:00 53.59 44.87
01.01.2008 14:00 45.78 43.21
01.01.2008 01:00 46.91 36.94
01.01.2008 02:00 37.24 32.93
01.01.2008 03:00 32.68 30.91
01.01.2008 04:00 30.93 27.37
01.01.2008 07:00 18.55 26.63
01.01.2008 08:00 23.11 33.33
01.01.2008 09:00 27.68 41.98
01.01.2008 10:00 37.18 48.46
Ce qui reste dans le vieux:
01.01.2008 05:00 30.89 25.42
01.01.2008 06:00 29.13 24.62
01.01.2008 15:00 40.71 47.96
01.01.2008 16:00 39.41 55.49
01.01.2008 17:00 46.95 62.63
01.01.2008 22:00 53.14 52.55
Ces moyennes ne seront pas classées puisqu'il n'y a pas 4 valeurs qui se suivent.
Voilà mon "gros problème", j'espère que c'est pas trop brouillon comme explication et merci pour l'aide!
J.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
julienbat
Messages postés
5
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
26 novembre 2007
23 nov. 2007 à 10:26
23 nov. 2007 à 10:26
Voilà le premier tri mais je n'arrive pas à faire recommencer la boucle si quelqu'un à une idée?
merci merci merci!
Sub MacroMax()
ligmax = Cells(65000, 4).End(xlUp).Row
monmax = 0
For i = 5 To ligmax
If Cells(i, 4) > monmax Then
monmax = Cells(i, 4)
imax = i
End If
Next i
Cells(imax, 4).Select
If Cells(imax + 4, 2) = Cells(imax + 3, 2) + 1 And Cells(imax + 3, 2) = Cells(imax + 2, 2) + 1 And Cells(imax + 2, 2) = Cells(imax + 1, 2) + 1 And Cells(imax + 1, 2) = Cells(imax, 2) + 1 Then
Range("A" & imax, "D" & imax + 3).Cut
Sheets("Feuil2").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
End If
End Sub
merci merci merci!
Sub MacroMax()
ligmax = Cells(65000, 4).End(xlUp).Row
monmax = 0
For i = 5 To ligmax
If Cells(i, 4) > monmax Then
monmax = Cells(i, 4)
imax = i
End If
Next i
Cells(imax, 4).Select
If Cells(imax + 4, 2) = Cells(imax + 3, 2) + 1 And Cells(imax + 3, 2) = Cells(imax + 2, 2) + 1 And Cells(imax + 2, 2) = Cells(imax + 1, 2) + 1 And Cells(imax + 1, 2) = Cells(imax, 2) + 1 Then
Range("A" & imax, "D" & imax + 3).Cut
Sheets("Feuil2").Select
ActiveSheet.Paste
Sheets("Feuil1").Select
End If
End Sub
julienbat
Messages postés
5
Date d'inscription
jeudi 22 novembre 2007
Statut
Membre
Dernière intervention
26 novembre 2007
26 nov. 2007 à 09:40
26 nov. 2007 à 09:40
EN fait mon Problème se situe dans le fait qu'une fois la macro executée, je n'arrive pas à recommencer plus bas.
C'est à dire qu'il faudrait que je recopie les cellules copiées à la suite dans ma feuille 2...
Existe-t-il un code qui dit: Copier à la prochaine cellule vide?
Merci à tous
C'est à dire qu'il faudrait que je recopie les cellules copiées à la suite dans ma feuille 2...
Existe-t-il un code qui dit: Copier à la prochaine cellule vide?
Merci à tous