XL 2013 Afficher une bdd dans un nouvel onglet

into

XLDnaute Nouveau
Bonjour à tous

je n'arrive pas à afficher le contenu d'un onglet dans un autre onglet que j'appelle avec une variable:
je veux choisir l'onglet qui contient mes données avec la cellule sheets(1).cells(1,1)

je mets sa valeur dans une variable
dim onglet as string
onglet = sheets(1).cells(1,1).value

et voici mon code qui donne une erreur qui affiche une fenêtre "l'indice n'appartient pas à la sélection"

Code:
Sub vueEnsemble()
Dim onglet As String
onglet = Sheets(1).Cells(1, 1).Value
For ligne = 1 To 31
ligne1 = ligne + 2
          For col = 1 To 12
          col1 = col + 9
'COMPTE LE NBRE DE RETOURS A LA LIGNE DANS LA CELLULE (+1 à la fin pour la 1ère ligne)
          ' Application.WorksheetFunction = appele une fonction Excel
          nbligne = Len(Worksheets(onglet).Cells(ligne, col).Value) - Len(Application.WorksheetFunction.Substitute(Worksheets(onglet).Cells(ligne, col), Chr(10), ""))
' jours travaillés
         If Worksheets(onglet).Cells(ligne, col).Value <> "" And Worksheets(onglet).Cells(ligne, col).Value <> "Férié" Then
         Sheets(1).Cells(ligne1, col1).Value = nbligne + 1
         End If
' jours fériés
           If Worksheets(onglet).Cells(ligne, col).Value = "Férié" Then
           Sheets(1).Cells(ligne1, col1).Value = "Férié"
           Sheets(1).Cells(ligne1, col1).Font.ColorIndex = 1
          Sheets(1).Cells(ligne1, col1).Interior.ColorIndex = 40
           End If
          Next col
Next ligne

End Sub

si quelqu'un pouvait m'aider... merci
 

into

XLDnaute Nouveau
Re : Afficher une bdd dans un nouvel onglet

bje Mutzig
je n'ai pas d'erreur !
c'est une fenetre qui s'affiche disant "l'indice n'appartient pas à la séléction"
je clique sur ok et la fenetre disparait
quand je vais dans le code, rien de surligné en jaune....
 

mutzik

XLDnaute Barbatruc
Re : Afficher une bdd dans un nouvel onglet

re,

évidemment, puisque tu acceptes l'erreur quand tu cliques sur ok et il continue l’exécution de la macro

il faut aller dans le code, et en mode pas à pas (F8), voir ou ça coince
 

into

XLDnaute Nouveau
Re : Afficher une bdd dans un nouvel onglet

j'ai essayé mais c'est pareil.

je t'envoi le classeur, mais comme c'est un peu le fouilli voici en gros en quoi il consiste :

l'onglet Matrice
c'est un calendrier où on choisi l'année à afficher
il est copié dans un nouvel onglet quand on crée (dans Feuil1) un RDV pour une année où il n'existe pas encore d'onglet

Feuil1
on va dire que c'est l'interface utilisateur

l'onglet 2015
c'est les enregistrement que j'ai crée par de userformRDV lors d'une premiere mouture

l'onglet 2016
c'est les enregistrements de RDV pour 2016

mon sub vueEnsemble() se trouve dans Feuil1

merci pour ton aide
 

Pièces jointes

  • Organizer.xlsm
    68.8 KB · Affichages: 54

mutzik

XLDnaute Barbatruc
Re : Afficher une bdd dans un nouvel onglet

re,

essaie
onglet = Year(Sheets(1).Cells(1, 1).Value)
sheets(1)= Feuille "Matrice" ... contient une date, pas une année
sinon évite d'utiliser ce genre dénomination, un debuggage ultérieur te posera beaucoup plus de temps que le temps que tu vas perdre en nommant correctement tes feuilles

dim fMatrice as sheets
set fMatrice = sheets("Matrice")

et tout le monde sait de quoi tu parles
 

into

XLDnaute Nouveau
Re : Afficher une bdd dans un nouvel onglet

merci Mutzik
j'ai testé mais sans succès

en fait ma cellule A1 de Feuil1 est un nombre type standard que j'ai personnalisé avec "Gestion agenda "0
c'est vrai que dans ce contexte nommer une feuille par un nombre est délicat
et je me demande si ça n'est pas ce nombre que vba prend pour un indice...

si onglet = 2016
sheets(onglet) peut etre interpreté comme la 2016ème feuille de calcul (qui n'exsiste pas)
ainsi que worksheets(onglet)
j'avais essayé en concaténant onglet, mais rien...

je vais essayer de refaire completement ma macro...
merci encore
 

mutzik

XLDnaute Barbatruc
Re : Afficher une bdd dans un nouvel onglet

pour le fun, essaie de nommer tes onglets en Y2015 par ex
puis :
onglet = "Y" & onglet et vérifier par F8
en tout état de cause, dans feuille(1)cells(1,1), j'ai fait un debug.print et il me sort une date, mais pas une année
à vérifier
 

into

XLDnaute Nouveau
Re : Afficher une bdd dans un nouvel onglet

re Mutzik
j'avais essayé Deuxmil15, deuxmil16 pour le nom de mes onglets, mais ça ne prenait pas...

Par contre, en déclarant onglet = Worksheets("Feuil1").Cells(1, 1).Value là ça marche !
alors que onglet = sheets(1).cells(1,1).value il ne reconnait pas

une question:
Quand on a Feuil1 = Feuil1, Feuil2 = Matrice et Feuil3 = 2015
si on écrit : sheets(1)
désigne-t-on la Feuil1 ou le premier onglet du classeur ?

Merci
 

mutzik

XLDnaute Barbatruc
Re : Afficher une bdd dans un nouvel onglet

re,

passe en mode développeur (Alt + F11), actives la fenêtre propriétés (F4) et tu verras toutes les propriétés de tes feuilles.
le nom que tu mets dans l'onglet = sheets(1).name (par ex)
 

into

XLDnaute Nouveau
Re : Afficher une bdd dans un nouvel onglet

re

super je ne connaissais pas ça (non plus)
j'ai fait un Range("D20") = Sheets(1).Name sur un bouton existant
et ça m'affiche Matrice c-à-d le premier onglet !
voilà pourquoi ça ne fonctionnait pas!
cqfd ! (pour une fois que je peux placer cqfd ^^)

Merci pour ton aide Mutzik
nous sommes en aout, les autres sont en vacances ? (ya que toi qui m'a répondu...)

Merci encore
 

Discussions similaires

Statistiques des forums

Discussions
312 435
Messages
2 088 392
Membres
103 838
dernier inscrit
noureddine