déterminer le nombre d'onglets numériques

superbog

XLDnaute Occasionnel
Bonjour,

J'ai un classeur excel avec plusieurs feuilles, certaines ont un nom numérique (1215,1345...) et d'autres un nom textuel (recap, verif..), je souhaite connaitre le nombre d'onglets numériques

je souhaite ensuite comparer les noms des onglets numériques avec une liste qui se trouve dans l'onglet client.
Le nom des onglets est en colonne A,

je souhaite comparer les onglets avec la liste en précisant la condition suivante
si la colonne M n'est pas vide ET que la colonne N est vide alors l'onglet doit exister

le but de la macro est de comparer les noms des onglets numériques avec la liste et de me faire un message m'indiquant soit les onglets manquants soit que tout est ok

ci joint un fichier exemple
 

Pièces jointes

  • testnb.xlsm
    14.6 KB · Affichages: 35
  • testnb.xlsm
    14.6 KB · Affichages: 36
  • testnb.xlsm
    14.6 KB · Affichages: 33

superbog

XLDnaute Occasionnel
Re : déterminer le nombre d'onglets numériques

Re

A 15h26 cela ne marchait pas alors qu'a 15h27 cela fonctionnait . C'est bien cela ????


je viens de refaire le test, regarde (ci joint fichier, j'ai supprimé l'onglet 1725 (qui pourtant devrait etre là puisque Q non vide) et pourtant la macro ne voit pas de pb
 

Pièces jointes

  • testnberr.xlsm
    28.4 KB · Affichages: 25
  • testnberr.xlsm
    28.4 KB · Affichages: 28
  • testnberr.xlsm
    28.4 KB · Affichages: 25

pierrejean

XLDnaute Barbatruc
Re : déterminer le nombre d'onglets numériques

Re

Macro pour transférer tes feuilles (Le fichier archives doit bien entendu être ouvert )

Code:
Sub transfert()
Set w = ActiveWorkbook
tablo = Range("A2:Q" & Range("A" & Rows.Count).End(xlUp).Row)
For n = LBound(tablo, 1) To UBound(tablo, 1)
  If tablo(n, 15) = "A" And tablo(n, 17) = "" Then
    x = Workbooks("archives.xlsm").Sheets.Count
    y = CStr(tablo(n, 1))
    w.Sheets(y).Move After:=Workbooks("archives.xlsm").Sheets(x)
  End If
Next
End Sub
 

superbog

XLDnaute Occasionnel
Re : déterminer le nombre d'onglets numériques

Re

Macro pour transférer tes feuilles (Le fichier archives doit bien entendu être ouvert )

Code:
Sub transfert()
Set w = ActiveWorkbook
tablo = Range("A2:Q" & Range("A" & Rows.Count).End(xlUp).Row)
For n = LBound(tablo, 1) To UBound(tablo, 1)
  If tablo(n, 15) = "A" And tablo(n, 17) = "" Then
    x = Workbooks("archives.xlsm").Sheets.Count
    y = CStr(tablo(n, 1))
    w.Sheets(y).Move After:=Workbooks("archives.xlsm").Sheets(x)
  End If
Next
End Sub

ca ne fonctionne pas, erreur d'exécution 9: l'indice n'appartient pas à la sélection
sur la ligne
Code:
  w.Sheets(y).Move After:=Workbooks("archives.xlsm").Sheets(x)
 

pierrejean

XLDnaute Barbatruc
Re : déterminer le nombre d'onglets numériques

Re

les onglets doivent exister quand O est vide (peu importe Q dans ce cas) ET quand O non vide et Q non vide

Ton ET est en fait un OU logique ( O est vide OU O est non vide ET Q est non vide)

Pour le Transfert , cela fonctionne chez moi avec ce fichier (avec archives ouvert !!!)
 

Pièces jointes

  • testnberr.xlsm
    26.3 KB · Affichages: 16
  • testnberr.xlsm
    26.3 KB · Affichages: 17
  • testnberr.xlsm
    26.3 KB · Affichages: 17

superbog

XLDnaute Occasionnel
Re : déterminer le nombre d'onglets numériques

Re

Ton ET est en fait un OU logique ( O est vide OU O est non vide ET Q est non vide)

Pour le Transfert , cela fonctionne chez moi avec ce fichier (avec archives ouvert !!!)

Désolée, je ne savais pas, j'ai noté pour le OU logique, ca marche super

par contre pour le transfert je ne comprends pas, avec le fichier archives ouvert évidemment ca ne fonctionne pas chez moi, je vais tout éteindre et tout rallumer car parfois excel a ses vapeurs ;)
 

pierrejean

XLDnaute Barbatruc
Re : déterminer le nombre d'onglets numériques

Re

Petite précision:
La macro doit être lancée à partir du fichier ou elle est située et avec la feuille contenant les noms de feuille affichée
Si ce n'est pas le cas me spécifier comment tu veux proceder
 

superbog

XLDnaute Occasionnel
Re : déterminer le nombre d'onglets numériques

Re

Petite précision:
La macro doit être lancée à partir du fichier ou elle est située et avec la feuille contenant les noms de feuille affichée
Si ce n'est pas le cas me spécifier comment tu veux proceder

ca marche effectivement, j'ai ajouté en début de macro
Code:
Workbooks.Open "C:\Users\Brigitte\Dropbox\BB\xlbb\archives.xlsm"
 Windows("AFFAIRES.xlsm").Activate
    Sheets("clients").Select

deux questions pour pouvoir adapter cette macro
1°)quand l'onglet est déplacé, comment éviter que je doive répondre à toute une série de boites de dialogues concernant les noms choisis dans la feuille concernée (je réponds oui à tout)
2°) comment faire pour que la boite de dialogue m'indique précisément la liste des onglets (ou au moins le nombre) déplacés

merci
 
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re : déterminer le nombre d'onglets numériques

Re

A tester:

Code:
Sub transfertb()
Message = " Feuilles déplacées" & Chr(10)
Set w = ActiveWorkbook
tablo = Range("A2:Q" & Range("A" & Rows.Count).End(xlUp).Row)
For n = LBound(tablo, 1) To UBound(tablo, 1)
  If tablo(n, 15) = "A" And tablo(n, 17) = "" Then
    x = Workbooks("archives.xlsm").Sheets.Count
    y = CStr(tablo(n, 2))
    Application.DisplayAlerts = False
    w.Sheets(y).Move After:=Workbooks("archives.xlsm").Sheets(x)
    Application.DisplayAlerts = True
    Message = Message & y & Chr(10)
    nb = nb + 1
  End If
Next
MsgBox (nb & Message)
End Sub
 

superbog

XLDnaute Occasionnel
Re : déterminer le nombre d'onglets numériques

Re

A tester:

Code:
Sub transfertb()
Message = " Feuilles déplacées" & Chr(10)
Set w = ActiveWorkbook
tablo = Range("A2:Q" & Range("A" & Rows.Count).End(xlUp).Row)
For n = LBound(tablo, 1) To UBound(tablo, 1)
  If tablo(n, 15) = "A" And tablo(n, 17) = "" Then
    x = Workbooks("archives.xlsm").Sheets.Count
    y = CStr(tablo(n, 2))
    Application.DisplayAlerts = False
    w.Sheets(y).Move After:=Workbooks("archives.xlsm").Sheets(x)
    Application.DisplayAlerts = True
    Message = Message & y & Chr(10)
    nb = nb + 1
  End If
Next
MsgBox (nb & Message)
End Sub

merci ca marche mais pour le msgbox, comment faire pour que l'information soit plus claire et que le texte soit par exemple

3 onglets archivés
dossiers archivés = 1268, 8597,5678
 

Discussions similaires

Réponses
5
Affichages
270
Réponses
1
Affichages
264

Statistiques des forums

Discussions
312 765
Messages
2 091 883
Membres
105 084
dernier inscrit
lca.pertus