[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

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

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:

Sub saisie_journée_complète()

' Petite macro qui permet de saisir des journées complètes automatiquement

If ActiveCell.Index = ("B12;B15;B17;B19;B21;B23;B25;B27;B29;B31;B33;B35") Then
Range(ActiveCell.Offset(0, 2), ActiveCell.Offset(0, 97)) = 1
Run ("envoi_au_tableauxbdd")

Else: MsgBox ("Vous ne cliquez pas sur une cellule valide")

End If

End Sub

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
Retour