Valeur de la première cellule non vide d'une colonne. [Résolu]

Messages postés
27
Date d'inscription
dimanche 25 janvier 2009
Dernière intervention
27 juin 2011
- - Dernière réponse : cs_choupinoob
Messages postés
27
Date d'inscription
dimanche 25 janvier 2009
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.
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
3
Merci
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

Merci ucfoutu 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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
Commenter la réponse de ucfoutu
Messages postés
27
Date d'inscription
dimanche 25 janvier 2009
Dernière intervention
27 juin 2011
0
Merci
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)
Commenter la réponse de cs_choupinoob
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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
Commenter la réponse de ucfoutu
Messages postés
27
Date d'inscription
dimanche 25 janvier 2009
Dernière intervention
27 juin 2011
0
Merci
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^^
Commenter la réponse de cs_choupinoob
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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
Commenter la réponse de ucfoutu
Messages postés
27
Date d'inscription
dimanche 25 janvier 2009
Dernière intervention
27 juin 2011
0
Merci
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.
Commenter la réponse de cs_choupinoob
Messages postés
27
Date d'inscription
dimanche 25 janvier 2009
Dernière intervention
27 juin 2011
0
Merci
Non non, c'est parfais, je te remercie :)
Commenter la réponse de cs_choupinoob

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.