Remplir des cellules selon une condition

Bonjour à tous. J'ai besoin d'un outil me permettant, au clic, de demander une valeur (numérique) à l'utilisateur. Il faut qu'une fois cette valeur saisie elle soit intégrée dans les cellules adjacentes aux cellules non-vides définies dans le code (ex : Range A1:A30)

Je vous mets des photos pour que ce soit plus parlant.

Merci beaucoup

vba2 vba3

Bonjour et bienvenu, bonjour le forum,

Pour moi c'est aussi clair qu'un nuage au clair de lune... Pourquoi des photos (captures d'écran) et pas un fichier. Tu as un problème sur Photoshop ou sur Excel ?!...

Non c'est bel et bien sur Excel que j'ai un blocage. Concrètement je souhaite que la valeur entrée dans mon inputbox soit reportée dans toutes les cellules en face des cellules non vides de la colonne A. Je ne peux envoyer le fichier sur lequel je travaille car c'est un fichier confidentiel de mon employeur.

Merci

Re,

Anonymiser un fichier contenant des données confidentielles prend deux secondes avec Excel. Maintenant, si tu as la flemme !...

[Édition 1]

Arf ! Désolé je navet pas bien regardé les captures d'écran je pensais que c'était deux tableaux différents alors que c'était un [Avant/Après]... Je reviens vers toi avec un code....

[Édition 2]

Le code à appliquer au bouton :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim BE As Variant 'déclare la variable BE (Boîte d'Entrée)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
DL = O.Cells(Application.Rows.Count, "A").End(xlp).Row 'de'finit la dernière ligne éditée DL de la colonne A de l'onglet O
BE = Application.InputBox("Tapez la valeur numérique.", "VALEUR", Type:=1) 'définit la boîte d'entrée BE
If BE = False Or BE = "" Then Exit Sub 'si [Annuler] ou non renseignée, sort de la procédure
For I = 2 To DL 'boucle sur toutes les lignes I de 2 à DL
    If O.Cells(I, "A").Value <> "" Then O.Cells(I, "B").Value = BE 'si la cellule en colonne A n'est pas vide, renvoie BE dans la cellule en colonne B
Next I 'prochaine ligne de la boucle
End Sub

Oui en fait les photos représentent l'actuel et l'attendu.. Pour ce qui est de l'inputbox je m'en sors mais c'est au moment de coder la condition que je bloque.. Je suis ultra-novice pour ne pas dire dépourvu de toutes connaissances.

Merci à toi !

Re,

Réponse dans mon post précédent édité...

D'accord merci, j'ai compris ton raisonnement qui est très clair, je teste ça de suite !!

J'ai encore une demande.. Je voudrais que lorsque j'actualise ma feuille (je rentre une nouvelle valeur dans mon inputbox), mon code supprime automatiquement les lignes dont l'une des deux colonnes est vide (A en l'occurrence).

La seule solution que j'ai trouvé pour le moment c'est de faire un second bouton qui supprime la totalité des deux colonnes.

Re,

Le code deviendrait :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim BE As Variant 'déclare la variable BE (Boîte d'Entrée)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
DL = O.Cells(Application.Rows.Count, "A").End(xlp).Row 'de'finit la dernière ligne éditée DL de la colonne A de l'onglet O
BE = Application.InputBox("Tapez la valeur numérique.", "VALEUR", Type:=1) 'définit la boîte d'entrée BE
If BE = False Or BE = "" Then Exit Sub 'si [Annuler] ou non renseignée, sort de la procédure
For I = DL To 2 Step -1 'boucle inversée sur toutes les lignes I de DL à 2
    If O.Cells(I, "A").Value <> "" Then 'condition : si la cellule en colonne A n'est pas vide,
        O.Cells(I, "B").Value = BE 'renvoie BE dans la cellule en colonne B
    Else 'sinon
        O.Rows(I).Delete 'supprime la ligne I
    End If 'fin de la condition
Next I 'prochaine ligne de la boucle
End Sub

Merci d'avoir pris sur ton temps pour moi !

a bientôt

Rechercher des sujets similaires à "remplir condition"