Valeur de la première cellule non vide d'une colonne.

Résolu
cs_choupinoob Messages postés 27 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 27 juin 2011 - 23 juin 2011 à 10:15
cs_choupinoob Messages postés 27 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 27 juin 2011 - 23 juin 2011 à 15:25
Bonjour à tous!


Par soucis de créer un poids de référence dans mon programme de pesée, j'aimerais récupérer dans une autre cellule (disons D27 par exemple^^). La première et uniquement la première valeur numérique non nulle d'une colonne (B par exemple).

Et qu'ensuite cette valeur numérique remplisse une autre colonne (A par exemple) de la valeur ici en D27 autant de fois que la colonne B est remplie.

Sauf que je ne sait pas par où commencer. Si vous pouviez m'apporter un peu d'aide ou des pistes, cela m'arrangerait beaucoup.

Merci d'avance de vos réponses.


E.

8 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 juin 2011 à 13:10
Alors voilà :
Private Sub CommandButton1_Click()
 Dim plage As Range, c As Range
 Set plage = Columns(2).SpecialCells(xlCellTypeConstants)
 For Each c In plage
   If IsNumeric(c.Text) And c.Value <> 0 Then
     Range("D27").Value = c.Value
     For i = 1 To Range("B" & Rows.Count).End(xlUp).row
       Range("A" & i).Value = c.Value
     Next
     Exit For
   End If
 Next

- Te met en D27 la valeur de la première cellule de la colonne B non vide, numérique et # 0
- remplit ta colonne A exactement comme tu viens de le définir
J'espère que tu ne vas pas changer d'avis et d'explications, maintenant.


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 juin 2011 à 10:56
Bonjour,

Cette partie là n'est pas claire !
Et qu'ensuite cette valeur numérique remplisse une autre colonne (A par exemple) de la valeur ici en D27 autant de fois que la colonne B est remplie.

et est à définir de manière plus limpide. S'agit-il de tout de la colonne B (vides compris) jusqu'à la dernière ligne non vide de la colonne B ? s'agit-il d'autre chose (à définir ?)
Quoi qu'il en soit : voici un petit exemple que tu devras adapter à tes besoins en ce qui concerne les bornes de la boucle For i , donc :

Private Sub CommandButton1_Click()
 Dim plage As Range, c As Range
 Set plage = Columns(2).SpecialCells(xlCellTypeConstants)
 For Each c In plage
   If IsNumeric(c.Text) And c.Value <> 0 Then
     Range("D27").Value = c.Value
     For i = 1 To 10 '=====>> exemple à défaut d'explications très claires
       Range("D" & i).Value = c.Value
     Next
     Exit For
   End If
 Next
End Sub

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
cs_choupinoob Messages postés 27 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 27 juin 2011
23 juin 2011 à 11:09
et est à définir de manière plus limpide. S'agit-il de tout de la colonne B (vides compris) jusqu'à la dernière ligne non vide de la colonne B ? s'agit-il d'autre chose (à définir ?)
Quoi qu'il en soit : voici un petit exemple que tu devras adapter à tes besoins en ce qui concerne les bornes de la boucle For i , donc :


Merci de ta réponse pour commencer :)
Je vais tenter d’être plus claire^^

Je veux donc,
1) récupérer la valeur de la première cellule non vide d'une plage et la rentrer dans une case indépendante.
*
2) La plage précédente se remplit case par case par l'appuie sur un bouton (cette partie marche)

3) Une autre colonne doit se remplir de la valeur de la case indépendante et donc la première valeur non nulle de la colonne précédente.
Mais, la colonne qui se remplit automatiquement doit comporter le même nombre de cellule remplies que celle remplie par un bouton.


Ça donnerais : avec Colonne A, B et D27 (pour garder le même exemple)

D27 prend la valeur de la première cellule non vide de B.
A se remplit de D27.
Nombre de cellule de A = nombre de cellule de B à la fin.


J'espère avoir été assez claire :D (N'hésite pas à me reprendre hein si c'est pas le cas)
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 juin 2011 à 11:34
D27 prend la valeur de la première cellule non vide de B.

déja dans mon code
A se remplit de D27.
Nombre de cellule de A = nombre de cellule de B à la fin.

"à la fin" de quoi ? dernière ligne non vide de la totalité de la feuille ou dernière ligne non vide de la colonne B ? ou encore dernière ligne possible (maximum) ?
Pas précis !
Bon; Voilà un exemple pour jusqu'à la dernière ligne du "UsedRange"

Private Sub CommandButton1_Click()
 Dim plage As Range, c As Range
 Set plage = Columns(2).SpecialCells(xlCellTypeConstants)
 For Each c In plage
   If IsNumeric(c.Text) And c.Value <> 0 Then
     Range("D27").Value = c.Value
     For i = 1 To UsedRange.Rows.Count
       Range("D" & i).Value = c.Value
     Next
     Exit For
   End If
 Next
End Sub

Si c'est autre chose : change ton Usedrange.Rows.Count par ce que tu veux d'autre (qui correspond à ce que tu as cherché à exprimer, mais non clairement)

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_choupinoob Messages postés 27 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 27 juin 2011
23 juin 2011 à 11:52
Au temps pour moi, j'ai probablement tendance à aller un peu vite en explications comme j'ai le système devant moi et que je sait ce que je veux ! :O

"à la fin" de quoi ?


*A la fin de rien du tout, mes pensées ont dépassées mes doigts . Je doit juste avoir le même nombre de cellule remplies dans A que dans B. (Chaque cellules de A valant D27)

C'est parce que je compare les deux après par des moyennes, sommes, etc.
Donc si j'ai 100 cellules remplies dans B, la somme ne seras pas en concordance avec la somme de A si elle en à 8000 de remplies^^
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
23 juin 2011 à 12:09
Je doit juste avoir le même nombre de cellule remplies dans A que dans B. (Chaque cellules de A valant D27)


Est-tu bien certain de ce que tu dis là ?
Si je le prends "à la lettre", cela veut par exemple dire que si en colonne B, tu as :de B1 à B4 vide B5 contenant "A" B6 vide, B7 contenant 25, B8 vide, B9 contenant "coucou" et le reste de ta colonne vide, je compte 3 cellules remplies (B5, B7 et B9) et ne remplis donc que de A1 à A3 !
Curieux et me paraissant peu vraisemblable
D'où la necessité d'être très précis !
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
0
cs_choupinoob Messages postés 27 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 27 juin 2011
23 juin 2011 à 12:55
C'est impossible que j'ai des cellules vides dans B donc ce problème ne se pose pas^^

Mais oui c'est à peu prés ça.

Si j'ai de B2 à B8000 de rempli, il faut qu'à coté, A2 à A8000 soient remplies.

Sauf que A doit avoir toujours la même valeur. (D27).

Exemple ; (pour D27 = 2)

A B
2 x
2 y
2 x
2 x

Ainsi de suite.
0
cs_choupinoob Messages postés 27 Date d'inscription dimanche 25 janvier 2009 Statut Membre Dernière intervention 27 juin 2011
23 juin 2011 à 15:25
Non non, c'est parfais, je te remercie :)
0
Rejoignez-nous