Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[Résolu] Ecrire une valeur sur une ligne

  • Initiateur de la discussion Initiateur de la discussion DonBeuBeu
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

DonBeuBeu

Guest
Salut tout l'monde!!!

J'explique la démarche pour commencer

-Je clique sur une cellule
-Je clique sur le bouton de la macro
-La macro écrit alors le chiffre 1 a partir de 2 cases vers la droite de ma cellule active, et sur 95 cases de long

J'arrive presque à le faire mais c'est pas encore sa, je suis sur que sa se fait en 2-3 lignes maxi, voir 1 ^^'

Merci d'avance!
 
Dernière modification par un modérateur:
Re : [VBA] Ecrire une valeur sur une ligne

Bonjour,

Ceci devrait t'aider:
Code:
Dim pcs as long
For pcs = ActiveCell.Column + 2 to ActiveCell.Column + 97 (le +2 de base, majoré du 95)
    ActiveSheet.cells(activecell.row, pcs).value = ......
next pcs

Cordialement,
 
Re : [VBA] Ecrire une valeur sur une ligne

Bonjour,
en fait ca tient en 1 ligne ;-)

ActiveCell.Range(ActiveCell.Offset(0, 2), ActiveCell.Offset(0, 95)) = 1
Pardon: il y a un activecell en trop

Range(ActiveCell.Offset(0, 2), ActiveCell.Offset(0, 97)) = 1
 
Dernière édition:
Re : [VBA] Ecrire une valeur sur une ligne

A condition que la valeur à renseigner soit toujours identique ...

(... Un jour, il va vraiment falloir que je me penche sur les instructions OffSet moi ...)
 
Re : [VBA] Ecrire une valeur sur une ligne

J'étais vraiment pas loin du bon code ^^'

Merci à vous 2 le code de vgendron marche parfaitement bien, le tiens aussi Orodreth mais l'autre est plus rapide étonnement 😱

Merci encore et bonne journée à tous!
 
Re : [VBA] Ecrire une valeur sur une ligne

pour Orodreth
l'instruction offset est simple
tu décales la selection (ici, cellule active) d'un nombre de ligne et d'un nombre de colonnes
ex: cells(1,1).offset(2,5).select
ca sélectionne la cellule située à +2lignes et +5colonnes de A1: donc ici: F3 (si je ne dis pas de betises)
 
Re : [Résolu] Ecrire une valeur sur une ligne

non pas obligé de sélectionner.. l'objet doit etre un range..après. tu en fais ce que tu veux
je ne suis pas allé voir l'aidre VBA, mais je suppose qu'elle décrit assez bien l'offset
 
Re : [Résolu] Ecrire une valeur sur une ligne

Je reviens vers vous!!! J'aurais aussi aimé que la macro ne marche que si certaines cellules sont sélectionnées,

B12;B15;B17;B19;B21;B23;B25;B27;B29;B31;B33;B35

J'ai essayé sa:


Merci d'avance
 
Re : [VBA] Ecrire une valeur sur une ligne

Désolé de faire remonter le sujet mais j'ai beau essayé plusieurs technique je n'y arrive pas... Encore une fois je suis sur que sa tiens en 2-3 lignes mais je dois pas avoir la bonne syntaxe =\

En faites je ne veux pas que la macro puisse se déclencher à tout moment mais uniquement si la cellule sélectionné se trouve dans cette liste:
B12;B15;B17;B19;B21;B23;B25;B27;B29;B31;B33;B35

Merci d'avance 😉
 
Re : [VBA] Ecrire une valeur sur une ligne

Re,

Non, pas 2/3 lignes là, c'est une suite de validation. Enfin ... Dans l'état actuel de mes connaissances. (Bref, si quelqu'un a mieux ...)

Une idée:
Code:
Dim b_Cellule_Valid as Boolean
b_Cellule_Valid = false

Dim ListeValide as string
ListeValide = "B12;B15;B17;B19;B21;B23;B25;B27;B29;B31;B33;B35"

Dim lesCellules() as string
lesCellules = split(ListeValide, ";")

Dim pcs_Valid as integer
for pcs_Valid = 0 to uBound(lesCellules)
    Dim adresseCell as string
    adresseCell = Replace(ActiveCell.address, "$", "")

    if adresseCell = lesCellules(pcs_Valid) then
        b_Cellule_Valid = True
        Exit For
    end if
next pcs_Valid

If b_Cellule_Valid Then
....TON CODE ICI ....
End if

C'est un peu plus complexe, mais ça me parait le plus simple à mettre en place

Cordialement,
 
Re : [VBA] Ecrire une valeur sur une ligne

Re,

Sinon (après réflexion de ma part ... je suis con des fois), plus simple, en beaucoup moins de ligne:

Code:
Dim ListeValide as string
ListeValide = "B12;B15;B17;B19;B21;B23;B25;B27;B29;B31;B33;B35"
Dim adresseCell as string
adresseCell = Replace(ActiveCell.address, "$", "")

If InStr(1, ListeValide, adresseCell) > 0 Then
    ...TON CODE ICI ...
End If

Pas besoin de passer par un tableau en fait.

Cordialement,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
520
Réponses
3
Affichages
879
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…