Modifier une cellule avec la fonction offset dans une feuille de donnée avec VBA

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 !

Geekette78

XLDnaute Nouveau
Bonjour,

Je suis étudiante et dans le cadre d'un projet sur VBA, je dois travailler sur un programme aidant à la gestion 'un cinéma.

Le souci est que je bloque sur le code suivant :

Dim table_donnees As Range
Dim num_ligne As Integer

num_ligne = 7

Set table_donnees = Worksheets("Données").Range("A7:E23")

Worksheet("Données!").Range("A7").Select[/COLOR][/COLOR]

For num_ligne = 7 To 23

If Range("A" & num_ligne) = num_client Then
ActiveCell.Offset(0, 4).Select
ActiveCell.Value = 0

End If

Next


L'écriture semble incorrecte à partir de "worksheet"

Si l'un d'entre vous pouvait m'aider ça me sortirait une sacrée épine du pied !

Je vous remercie beaucoup !!
 
Re : Modifier une cellule avec la fonction offset dans une feuille de donnée avec VBA

Bonsoir, j'ai mis des commentaires,

j'ai corrigé se que je sais. sans fichier pas évident.

Sub test()


Dim table_donnees As Range
Dim num_ligne As Integer

num_ligne = 7


' ThisWorkbook = pour le classeur dans la macro tourne pour l'adressage de la feuille.
' si c'est un autres classeur il faur ajouter une autre instruction pour le classeur autres)

Set table_donnees = ThisWorkbook.Worksheets("Données").Range("A7:E23")

table_donnees.Range("A7").Select '[/COLOR][/COLOR] je connais pas cette instruction ? si elle fonctionne activé la

' la condition for est fausse

'La variable ne peut pas être [num_ligne] pour for car ici elle est déja = à 7 donc i par exemple à la place.

' la question pourquoi utilisé dans la boucle for num_ligne (pour le compteur ?) je penser que cette variable était utiliser plus loing dans le code.

' ===>>> j'aurais penser cela for i = num_ligne to 27 ( soit de la ligne 7 à 27) et i pour le
' compteur

For num_ligne = 7 To 23 ' j'ai mis au dessus mon explication.

If Range("A" & num_ligne) = num_client Then

' Range("A" & num_ligne) (la boucle tourse sur la feuille "Données" ou une autre ?)
' si elle tourne sur la feuille Données écriture = table_donnees.Range("A" & num_ligne)

ActiveCell.Offset(0, 4).Select
ActiveCell.Value = 0

End If

Next

End Sub

laurent
 
Dernière édition:
Re : Modifier une cellule avec la fonction offset dans une feuille de donnée avec VBA

Bonsoir le fil

Tu peux optimiser le code de la sorte
VB:
  Dim table_donnees As Range
  Dim num_ligne As Integer
  ' A quoi sert cette ligne !?
  Set table_donnees = Worksheets("Données").Range("A7:E23")
  ' Pour chaque ligne de 7 à 23
  For num_ligne = 7 To 23
    If Range("A" & num_ligne) = num_client Then
      ' Mettre la valeur 0 dans la colonne E de la ligne
      Range("E" & num - ligne).Value = 0
    End If
  Next

En l'état, je ne vois pas à quoi te sert
Code:
Set table_donnees = Worksheets("Données").Range("A7:E23")

Mais, comme le dis Laurent950 que je salue, pas facile sans fichier 😉

A+
 
- 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

Discussions similaires

Retour