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

VBA: VBA ne reconnait pas Ws bien que définie

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 !

bertrand1202

XLDnaute Occasionnel
Bonjour


je souhaite cumuler dans la feuille A dans les colonnes C D E les éléments des autres feuilles du classeur.

Si en feuil1 C5=10et en Feuil2 C5= 5 , j'obiendrai: 15 en C5 en feuille A

Ma macro ne reconnaît pas Ws bien que je l'aies initialisée.

Ci-joint Code:
Code:
[/Sub sommecolonnefeuilles()
Dim c As Byte
Dim vligne As Integer
Dim ws As Worksheet
Dim vsomcolonne As Long
Dim vcellule As Range

  For Each vcellule In Range("b5:b" & Range("b65536").End(xlUp).Row)
   For Each ws In ActiveWorkbook.Worksheets
    For c = 1 To 3
      
      vsomcolonne = vsomcolonne + ws("ws.Name").vcellule(vligne, c)
      ws("A").vcellule(vligne, c) = vsomcolonne
      
    Next c
   Next ws
  Next vcellule
  ws("A").vcellule(vligne, c) = vsomcolonne + ws("A").vcellule(vligne, c)
  vsomcolonne = 0
  

End Sub


Merci d'avance de vos éclairages pour que je comprenne le pourquoi du comment. VBA relève encore un peu de la magie pour moi.
merci d'avance.
 
Re : VBA: VBA ne reconnait pas Ws bien que définie

Bonsoir bertrand1202,

Tes efforts sont louables, cependant le code affiché ne donne guère le sens des tâches à automatiser.

Poste un extrait du projet afin que cela soit plus explicite.
 
Re : VBA: VBA ne reconnait pas Ws bien que définie

Bonsoir à tous
Je pense qu'il faut initialiser ws :
Code:
[COLOR="DarkSlateGray"]   Set ws = Worksheets("A")[/COLOR]
et écrire :
Code:
[COLOR="DarkSlateGray"]ws.vcellule(vligne, c) = vsomcolonne[/COLOR]
Difficile d'en dire plus sur un code aussi incomplet.​
ROGER2327
#2046

Remarque : Réponse rédigée avant le dépôt du classeur support.
 
Dernière édition:
Re : VBA: VBA ne reconnait pas Ws bien que définie

Re,

Ci-joint une solution

Code:
Sub sommefeuilles()
Set Sourc = Sheets("A").Range("B4")
Sourc.CurrentRegion.Offset(1, 0).Clear
For Each X In Sheets
    If X.Name <> "A" Then
        For i = 1 To X.Range("C5").CurrentRegion.Rows.Count
            For j = 1 To X.Range("C5").CurrentRegion.Columns.Count
                Sourc.Offset(i, j).Value = Sourc.Offset(i, j).Value + X.Cells(i + 4, j + 2).Value
            Next
        Next
    End If
Next
End Sub
 

Pièces jointes

Dernière édition:
Re : VBA: VBA ne reconnait pas Ws bien que définie

Bonjour Catrice, Bernard Roger 3327


Merci de vos réponses . Vligne est un entier et correspond au numéro de ligne. Quant à ws , je pensais l'avoir initialisée avec for each.

ce que je veux faire est simple , c'est cumuler en feuille (A) dans la colonne c^par exemple, les sommes figurant en colonne c sur feuil et feuil 2

Merci de vos explications.
je m'y remets pour essayer de comprendre

Bonne soirée
 
Re : VBA: VBA ne reconnait pas Ws bien que définie

Bonsoir Catrice

Puis je demander quelques points sur le code ?

Sub sommefeuilles()
Set Sourc = Sheets("A").Range("B4")
Sourc.CurrentRegion.Offset(1, 0).Clear
For Each X In Sheets ' Que signifie X? est ce une définition VBA pour les noms de feuilles?, pourquoi ne définit on pas le X au départ ?[/COLOR]
If X.Name <> "A" Then
For i = 1 To X.Range("C5").CurrentRegion.Rows.Count
For j = 1 To X.Range("C5").CurrentRegion.Columns.Count
toto = X.Cells(i + 5, j + 3).Address ( à quoi sert .Adress?
Sourc.Offset(i, j).Value = Sourc.Offset(i, j).Value + X.Cells(i + 4, j + 2).Value 'Pourqoui j+2 , i+4 c'est pour arriver à ligne 5
Next
Next
End If
Next
End Sub

merci de m'éclairer , merci d'avance .
 
Re : VBA: VBA ne reconnait pas Ws bien que définie

Bonsoir,

Avec For Each X In Sheets on boucle sur les feuilles du classeurs.
X est alors à chaque boucle un objet Feuille

toto = X.Cells(i + 5, j + 3).Address , ne sert à rien. C'etait un test que j'ai oublié d'enlever...
 
Re : VBA: VBA ne reconnait pas Ws bien que définie

Bonsoir

Merci Catrice, je cherche toujours à faire pas à pas car je ne maitrise pas VBA et je cherche à comprendre comment cela marche. Je le fais encore d'une manière lourde pour essayer de m'en sortir.
Désolé si mes questions peuvent paraître stupides, je m'autoforme gr^ce à vous. Merci de votre aide.
Bonne soirée.
 
- 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

Réponses
5
Affichages
575
  • Question Question
Microsoft 365 Excel VBA
Réponses
5
Affichages
577
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…