Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion ounissss
  • 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 !

O

ounissss

Guest
bonjour,
j'ai besoin de faire une macro qui donne le nombre de chiffre répété ds des tableaux et remplir les resultats obtenu ds un autre tableau.
j'ai réussi a faire cela mais seulement pour un nombre de ligne fixe pour chaque tableau, si jamais on change le nombre de ligne sélectionner pour chaque tableau il se peut que le premier tableau se confond avec le deuxiéme ce qui bousille les calculs donc ce qu'il faudrait faire c'est assigné une variable au ligne et une variable au tableau et faire en sorte que quand on trouve du vide on s'arrête et on passe au tableau suivant ainsi de suite.
la fonction que j'utilise c'est NB.SI.ENS voici une image pour mieux illustrer le problème MERCI.
LA QUESTION : c'est cmt passer d'un nmbre de ligne fixe a un nombre variable ss confondre les tableaux?

Sub Macro3()
'
' Macro3 Macro
'

'
Range("J8").Select
ActiveCell.FormulaR1C1 = "=COUNTIFS(R12C[-7]:R30C[-7],RC[-1])"
Selection.AutoFill Destination:=Range("J8:J28"), Type:=xlFillDefault
Range("J8:J28").Select
Range("K8").Select
ActiveCell.FormulaR1C1 = "=COUNTIFS(R38C[-8]:R83C[-8],RC[-2])"
Selection.AutoFill Destination:=Range("K8:K28"), Type:=xlFillDefault
Range("K8:K28").Select
Range("H33").Select
End Sub
 

Pièces jointes

Re : aide sur macro

Bonjour Ounissss et bienvenue 🙂,
Pour positionner tes tableaux, essaie ce code
Code:
Sub test()
Dim c As Range, firstAddress As String
With Worksheets(1).Range("a:a")
    Set c = .Find("Relation", LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            MsgBox c.Offset(-2, 0) ' Nom du tableau
            MsgBox c.End(xlDown).Row ' Ligne du total
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
End Sub
à complèter pour tes besoins.
Bonne journée 😎
 
Re : aide sur macro

Re 🙂,
en fait je ne sait pas quoi faire avec vu que je suis debutant sur excel des indications de ta part me seront vrmt utile MERCI
Le code te permet de décrire chaque tableau.
Comme indiqué en commentaire, le premier te donne le nom du tableau
"c.Row" te donne la première ligne du tableau, donc "c.row +1" te donnera la première ligne de valeurs.
"c.End(xlDown).Row" te donne la ligne où est Total, donc "c.End(xlDown).Row - 1" te donnera la dernière ligne de valeurs.
Que te dire d'autre ? Tu as tout en main pour complèter tes formules 😉...
Bonne journée 😎
 
Re : aide sur macro

Merci, maintenant j'ai compris ton raisonnement, alors je pourrai appliquer cette formule dans mon excel mais le problème c'est que je ne sais pas comment y parvenir veut m'aider (en ce qui concerne intégrer cette formule dans excel). Merci infiniment.
 
Re : aide sur macro

Re 🙂,
Pour pouvoir t'aider plus, il faudrait que ton fichier soit plus explicatif :
Feuille 1, situation de départ
Feuille 2 : résultat à obtenir.
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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

B
  • Résolu(e)
2
Réponses
16
Affichages
2 K
benbella1991
B
Réponses
13
Affichages
853
J
  • Question Question
Microsoft 365 Formules
Réponses
2
Affichages
784
J
L
Réponses
9
Affichages
1 K
Réponses
2
Affichages
1 K
J
Réponses
22
Affichages
3 K
jui42
J
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…