J'ai en Feuil1 une sorte de base de données avec de multiples colonnes.
Je veux donner à l'utilisateur la possibilité de créer différentes
feuilles à partir de cette base :
- En sélectionnant les lignes à mettre dans ces nouvelles feuilles
(je sais faire maintenant).
- En sélectionnant les colonnes qu'il veut faire apparaître dans
ces nouvelles feuilles.
Mon idée :
- Faire apparaître un formulaire dans lequel s'afficherait la liste
des colonnes (titres en ligne 3) peut-être sous forme de cases à cocher.
- Donner la possibilité de choisir (cocher ?) les colonnes à faire
apparaître. Cliquez sur un bouton du formulaire.
- Copier dans une feuille masquée les colonnes sélectionnées.
Quelqu'un a-t-il déjà fait quelque chose comme cela ? Je suis intéressée
par vos idées.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Modeste
Bonsour® JulieH avec ferveur ;o))) vous nous disiez :
Bonjour,
Un autre problème maintenant que je suis lancée.
J'ai en Feuil1 une sorte de base de données avec de multiples colonnes. Je veux donner à l'utilisateur la possibilité de créer différentes feuilles à partir de cette base : - En sélectionnant les lignes à mettre dans ces nouvelles feuilles (je sais faire maintenant). - En sélectionnant les colonnes qu'il veut faire apparaître dans ces nouvelles feuilles.
Mon idée : - Faire apparaître un formulaire dans lequel s'afficherait la liste des colonnes (titres en ligne 3) peut-être sous forme de cases à cocher. - Donner la possibilité de choisir (cocher ?) les colonnes à faire apparaître. Cliquez sur un bouton du formulaire. - Copier dans une feuille masquée les colonnes sélectionnées.
Quelqu'un a-t-il déjà fait quelque chose comme cela ? Je suis intéressée par vos idées.
Julie
voir l'utilisation du gestionnaire de vues
Menu Affichage > Affichages Personnalisés... masquer les colonnes selon les besoins nommer cette vue Ajouter
on peut créer ainsi plusieures visions d'une même page vision qu'il suffit alors de rappeler par le nom attribué
voir l'aide F1 : Créer ou supprimer des affichages personnalisés Afficher une vue personnalisée Imprimer une vue personnalisée
-- -- @+ ;o)))
Bonsour® JulieH avec ferveur ;o))) vous nous disiez :
Bonjour,
Un autre problème maintenant que je suis lancée.
J'ai en Feuil1 une sorte de base de données avec de multiples
colonnes. Je veux donner à l'utilisateur la possibilité de créer
différentes feuilles à partir de cette base :
- En sélectionnant les lignes à mettre dans ces nouvelles feuilles
(je sais faire maintenant).
- En sélectionnant les colonnes qu'il veut faire apparaître dans
ces nouvelles feuilles.
Mon idée :
- Faire apparaître un formulaire dans lequel s'afficherait la
liste des colonnes (titres en ligne 3) peut-être sous forme de cases
à cocher. - Donner la possibilité de choisir (cocher ?) les
colonnes à faire apparaître. Cliquez sur un bouton du formulaire.
- Copier dans une feuille masquée les colonnes sélectionnées.
Quelqu'un a-t-il déjà fait quelque chose comme cela ? Je suis
intéressée par vos idées.
Julie
voir l'utilisation du gestionnaire de vues
Menu Affichage > Affichages Personnalisés...
masquer les colonnes selon les besoins
nommer cette vue
Ajouter
on peut créer ainsi plusieures visions d'une même page
vision qu'il suffit alors de rappeler par le nom attribué
voir l'aide F1 :
Créer ou supprimer des affichages personnalisés
Afficher une vue personnalisée
Imprimer une vue personnalisée
Bonsour® JulieH avec ferveur ;o))) vous nous disiez :
Bonjour,
Un autre problème maintenant que je suis lancée.
J'ai en Feuil1 une sorte de base de données avec de multiples colonnes. Je veux donner à l'utilisateur la possibilité de créer différentes feuilles à partir de cette base : - En sélectionnant les lignes à mettre dans ces nouvelles feuilles (je sais faire maintenant). - En sélectionnant les colonnes qu'il veut faire apparaître dans ces nouvelles feuilles.
Mon idée : - Faire apparaître un formulaire dans lequel s'afficherait la liste des colonnes (titres en ligne 3) peut-être sous forme de cases à cocher. - Donner la possibilité de choisir (cocher ?) les colonnes à faire apparaître. Cliquez sur un bouton du formulaire. - Copier dans une feuille masquée les colonnes sélectionnées.
Quelqu'un a-t-il déjà fait quelque chose comme cela ? Je suis intéressée par vos idées.
Julie
voir l'utilisation du gestionnaire de vues
Menu Affichage > Affichages Personnalisés... masquer les colonnes selon les besoins nommer cette vue Ajouter
on peut créer ainsi plusieures visions d'une même page vision qu'il suffit alors de rappeler par le nom attribué
voir l'aide F1 : Créer ou supprimer des affichages personnalisés Afficher une vue personnalisée Imprimer une vue personnalisée
-- -- @+ ;o)))
JulieH
Bonjour et merci pour ta réponse,
J'ai oublié de dire que je voulais le réaliser en VBA.
Julie
Modeste a écrit :
Bonsour® JulieH avec ferveur ;o))) vous nous disiez :
Bonjour,
Un autre problème maintenant que je suis lancée.
J'ai en Feuil1 une sorte de base de données avec de multiples colonnes. Je veux donner à l'utilisateur la possibilité de créer différentes feuilles à partir de cette base : - En sélectionnant les lignes à mettre dans ces nouvelles feuilles (je sais faire maintenant). - En sélectionnant les colonnes qu'il veut faire apparaître dans ces nouvelles feuilles.
Mon idée : - Faire apparaître un formulaire dans lequel s'afficherait la liste des colonnes (titres en ligne 3) peut-être sous forme de cases à cocher. - Donner la possibilité de choisir (cocher ?) les colonnes à faire apparaître. Cliquez sur un bouton du formulaire. - Copier dans une feuille masquée les colonnes sélectionnées.
Quelqu'un a-t-il déjà fait quelque chose comme cela ? Je suis intéressée par vos idées.
Julie
voir l'utilisation du gestionnaire de vues
Menu Affichage > Affichages Personnalisés... masquer les colonnes selon les besoins nommer cette vue Ajouter
on peut créer ainsi plusieures visions d'une même page vision qu'il suffit alors de rappeler par le nom attribué
voir l'aide F1 : Créer ou supprimer des affichages personnalisés Afficher une vue personnalisée Imprimer une vue personnalisée
Bonjour et merci pour ta réponse,
J'ai oublié de dire que je voulais le réaliser en VBA.
Julie
Modeste a écrit :
Bonsour® JulieH avec ferveur ;o))) vous nous disiez :
Bonjour,
Un autre problème maintenant que je suis lancée.
J'ai en Feuil1 une sorte de base de données avec de multiples
colonnes. Je veux donner à l'utilisateur la possibilité de créer
différentes feuilles à partir de cette base :
- En sélectionnant les lignes à mettre dans ces nouvelles feuilles
(je sais faire maintenant).
- En sélectionnant les colonnes qu'il veut faire apparaître dans
ces nouvelles feuilles.
Mon idée :
- Faire apparaître un formulaire dans lequel s'afficherait la
liste des colonnes (titres en ligne 3) peut-être sous forme de cases
à cocher. - Donner la possibilité de choisir (cocher ?) les
colonnes à faire apparaître. Cliquez sur un bouton du formulaire.
- Copier dans une feuille masquée les colonnes sélectionnées.
Quelqu'un a-t-il déjà fait quelque chose comme cela ? Je suis
intéressée par vos idées.
Julie
voir l'utilisation du gestionnaire de vues
Menu Affichage > Affichages Personnalisés...
masquer les colonnes selon les besoins
nommer cette vue
Ajouter
on peut créer ainsi plusieures visions d'une même page
vision qu'il suffit alors de rappeler par le nom attribué
voir l'aide F1 :
Créer ou supprimer des affichages personnalisés
Afficher une vue personnalisée
Imprimer une vue personnalisée
J'ai oublié de dire que je voulais le réaliser en VBA.
Julie
Modeste a écrit :
Bonsour® JulieH avec ferveur ;o))) vous nous disiez :
Bonjour,
Un autre problème maintenant que je suis lancée.
J'ai en Feuil1 une sorte de base de données avec de multiples colonnes. Je veux donner à l'utilisateur la possibilité de créer différentes feuilles à partir de cette base : - En sélectionnant les lignes à mettre dans ces nouvelles feuilles (je sais faire maintenant). - En sélectionnant les colonnes qu'il veut faire apparaître dans ces nouvelles feuilles.
Mon idée : - Faire apparaître un formulaire dans lequel s'afficherait la liste des colonnes (titres en ligne 3) peut-être sous forme de cases à cocher. - Donner la possibilité de choisir (cocher ?) les colonnes à faire apparaître. Cliquez sur un bouton du formulaire. - Copier dans une feuille masquée les colonnes sélectionnées.
Quelqu'un a-t-il déjà fait quelque chose comme cela ? Je suis intéressée par vos idées.
Julie
voir l'utilisation du gestionnaire de vues
Menu Affichage > Affichages Personnalisés... masquer les colonnes selon les besoins nommer cette vue Ajouter
on peut créer ainsi plusieures visions d'une même page vision qu'il suffit alors de rappeler par le nom attribué
voir l'aide F1 : Créer ou supprimer des affichages personnalisés Afficher une vue personnalisée Imprimer une vue personnalisée
Modeste
Bonsour® JulieH avec ferveur ;o))) vous nous disiez :
J'ai oublié de dire que je voulais le réaliser en VBA.
;o))) d'abord creer les vues...(elles seront crées une fois pour toutes, VBA n'est pas nécessaire) ensuite utiliser l'enregistreur de macro pour manipuler les vues
elaguer le code, creer des UserForm avecdes boutons ou listes déroulantes pour activer les codes précédents
-- @+ ;o)))
Bonsour® JulieH avec ferveur ;o))) vous nous disiez :
J'ai oublié de dire que je voulais le réaliser en VBA.
;o)))
d'abord creer les vues...(elles seront crées une fois pour toutes, VBA n'est pas nécessaire)
ensuite utiliser l'enregistreur de macro pour manipuler les vues
elaguer le code, creer des UserForm avecdes boutons ou listes déroulantes pour activer les codes précédents
Bonsour® JulieH avec ferveur ;o))) vous nous disiez :
J'ai oublié de dire que je voulais le réaliser en VBA.
;o))) d'abord creer les vues...(elles seront crées une fois pour toutes, VBA n'est pas nécessaire) ensuite utiliser l'enregistreur de macro pour manipuler les vues
elaguer le code, creer des UserForm avecdes boutons ou listes déroulantes pour activer les codes précédents
-- @+ ;o)))
FFO
Salut Julie
Pourquoi utiliser un Formulaire ??? Je te propose plutôt de mettre ce bout de code dans le VBA de la feuille des colonnes à recopier en Feuil2 :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Row = 1 Then If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address And Sheets("Feuil2").Range("A1") = "" Then Target.Columns.Copy Sheets("Feuil2").Range("IV1").End(xlToLeft) Else Target.Columns.Copy Sheets("Feuil2").Range("IV1").End(xlToLeft).Offset(0, 1) End If End If End Sub
Attention de mettre ces 2 lignes : If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address And Sheets("Feuil2").Range("A1") = "" Then en une seule bout à bout
Puis il ne reste plus qu'à double cliquer sur la 1° cellule de la colonne à recopier En feuil2 tes colonnes choisies le seront
Il est impératif que toutes tes colonnes aient leur première cellule non vide (présence d'une Entète par exemple)
Celà te convient-il ???
Dis moi !!!!
Salut Julie
Pourquoi utiliser un Formulaire ???
Je te propose plutôt de mettre ce bout de code dans le VBA de la feuille des
colonnes à recopier en Feuil2 :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
If Target.Row = 1 Then
If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address
And Sheets("Feuil2").Range("A1") = "" Then
Target.Columns.Copy Sheets("Feuil2").Range("IV1").End(xlToLeft)
Else
Target.Columns.Copy Sheets("Feuil2").Range("IV1").End(xlToLeft).Offset(0, 1)
End If
End If
End Sub
Attention de mettre ces 2 lignes :
If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address
And Sheets("Feuil2").Range("A1") = "" Then
en une seule bout à bout
Puis il ne reste plus qu'à double cliquer sur la 1° cellule de la colonne à
recopier
En feuil2 tes colonnes choisies le seront
Il est impératif que toutes tes colonnes aient leur première cellule non
vide (présence d'une Entète par exemple)
Pourquoi utiliser un Formulaire ??? Je te propose plutôt de mettre ce bout de code dans le VBA de la feuille des colonnes à recopier en Feuil2 :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Row = 1 Then If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address And Sheets("Feuil2").Range("A1") = "" Then Target.Columns.Copy Sheets("Feuil2").Range("IV1").End(xlToLeft) Else Target.Columns.Copy Sheets("Feuil2").Range("IV1").End(xlToLeft).Offset(0, 1) End If End If End Sub
Attention de mettre ces 2 lignes : If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address And Sheets("Feuil2").Range("A1") = "" Then en une seule bout à bout
Puis il ne reste plus qu'à double cliquer sur la 1° cellule de la colonne à recopier En feuil2 tes colonnes choisies le seront
Il est impératif que toutes tes colonnes aient leur première cellule non vide (présence d'une Entète par exemple)
Celà te convient-il ???
Dis moi !!!!
JulieH
Bonsoir et merci pour ton idée,
C'est très intéressant et je n'avais pas pensé à cela. Malheureusement, je ne peux pas utiliser cette technique car ma question concernait un projet beaucoup plus large et la macro fera bien d'autres choses : - De manière simplifiée, on peut imaginer un fichier "base de données" avec des élèves et de nombreuses colonnes d'informations (classe, téléphone, profession parents, mail, portable...) Ce fichier ne sera pas accessible par l'utilisateur. - Par contre, il aura accès à un fichier "Requêtes" pour générer des listes d'élèves (par exemple ceux de la classe x). Il sélectionne sa classe et la macro va chercher dans la base et récupérer uniquement les élèves de la classe et les copie dans une feuille du fichier "Requêtes" (je sais faire). - C'est à moment que je souhaite utiliser "ma demande". Il ne voudra pas toutes les colonnes et je veux lui donner la possibilité de choisir celles qu'il veut utiliser.
Je ne sais pas si c'est plus clair ?
Julie
FFO a écrit :
Salut Julie
Pourquoi utiliser un Formulaire ??? Je te propose plutôt de mettre ce bout de code dans le VBA de la feuille des colonnes à recopier en Feuil2 :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Row = 1 Then If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address And Sheets("Feuil2").Range("A1") = "" Then Target.Columns.Copy Sheets("Feuil2").Range("IV1").End(xlToLeft) Else Target.Columns.Copy Sheets("Feuil2").Range("IV1").End(xlToLeft).Offset(0, 1) End If End If End Sub
Attention de mettre ces 2 lignes : If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address And Sheets("Feuil2").Range("A1") = "" Then en une seule bout à bout
Puis il ne reste plus qu'à double cliquer sur la 1° cellule de la colonne à recopier En feuil2 tes colonnes choisies le seront
Il est impératif que toutes tes colonnes aient leur première cellule non vide (présence d'une Entète par exemple)
Celà te convient-il ???
Dis moi !!!!
Bonsoir et merci pour ton idée,
C'est très intéressant et je n'avais pas pensé à cela. Malheureusement,
je ne peux pas utiliser cette technique car ma question concernait un
projet beaucoup plus large et la macro fera bien d'autres choses :
- De manière simplifiée, on peut imaginer un fichier "base de données"
avec des élèves et de nombreuses colonnes d'informations (classe,
téléphone, profession parents, mail, portable...) Ce fichier ne sera pas
accessible par l'utilisateur.
- Par contre, il aura accès à un fichier "Requêtes" pour générer des
listes d'élèves (par exemple ceux de la classe x). Il sélectionne sa
classe et la macro va chercher dans la base et récupérer uniquement les
élèves de la classe et les copie dans une feuille du fichier "Requêtes"
(je sais faire).
- C'est à moment que je souhaite utiliser "ma demande". Il ne voudra
pas toutes les colonnes et je veux lui donner la possibilité de choisir
celles qu'il veut utiliser.
Je ne sais pas si c'est plus clair ?
Julie
FFO a écrit :
Salut Julie
Pourquoi utiliser un Formulaire ???
Je te propose plutôt de mettre ce bout de code dans le VBA de la feuille des
colonnes à recopier en Feuil2 :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)
If Target.Row = 1 Then
If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address
And Sheets("Feuil2").Range("A1") = "" Then
Target.Columns.Copy Sheets("Feuil2").Range("IV1").End(xlToLeft)
Else
Target.Columns.Copy Sheets("Feuil2").Range("IV1").End(xlToLeft).Offset(0, 1)
End If
End If
End Sub
Attention de mettre ces 2 lignes :
If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address
And Sheets("Feuil2").Range("A1") = "" Then
en une seule bout à bout
Puis il ne reste plus qu'à double cliquer sur la 1° cellule de la colonne à
recopier
En feuil2 tes colonnes choisies le seront
Il est impératif que toutes tes colonnes aient leur première cellule non
vide (présence d'une Entète par exemple)
C'est très intéressant et je n'avais pas pensé à cela. Malheureusement, je ne peux pas utiliser cette technique car ma question concernait un projet beaucoup plus large et la macro fera bien d'autres choses : - De manière simplifiée, on peut imaginer un fichier "base de données" avec des élèves et de nombreuses colonnes d'informations (classe, téléphone, profession parents, mail, portable...) Ce fichier ne sera pas accessible par l'utilisateur. - Par contre, il aura accès à un fichier "Requêtes" pour générer des listes d'élèves (par exemple ceux de la classe x). Il sélectionne sa classe et la macro va chercher dans la base et récupérer uniquement les élèves de la classe et les copie dans une feuille du fichier "Requêtes" (je sais faire). - C'est à moment que je souhaite utiliser "ma demande". Il ne voudra pas toutes les colonnes et je veux lui donner la possibilité de choisir celles qu'il veut utiliser.
Je ne sais pas si c'est plus clair ?
Julie
FFO a écrit :
Salut Julie
Pourquoi utiliser un Formulaire ??? Je te propose plutôt de mettre ce bout de code dans le VBA de la feuille des colonnes à recopier en Feuil2 :
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Row = 1 Then If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address And Sheets("Feuil2").Range("A1") = "" Then Target.Columns.Copy Sheets("Feuil2").Range("IV1").End(xlToLeft) Else Target.Columns.Copy Sheets("Feuil2").Range("IV1").End(xlToLeft).Offset(0, 1) End If End If End Sub
Attention de mettre ces 2 lignes : If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address And Sheets("Feuil2").Range("A1") = "" Then en une seule bout à bout
Puis il ne reste plus qu'à double cliquer sur la 1° cellule de la colonne à recopier En feuil2 tes colonnes choisies le seront
Il est impératif que toutes tes colonnes aient leur première cellule non vide (présence d'une Entète par exemple)
Celà te convient-il ???
Dis moi !!!!
FFO
Rebonjour Julie
Je propose donc de saisir dans une boîte de dialogue les lettres des colonnes à recopier séparées d'une virgule avec ce code (Recopie en Feuil2):
Colonne = InputBox("Saisissez la lettre des colonnes séparée d'une virgule", "Colonnes à recopier", "A,B,...") On Error Resume Next For i = 0 To UBound(Split(Colonne, ",")) If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address And Sheets("Feuil2").Range("A1") = "" Then Columns(Split(Colonne, ",")(i)).Copy Sheets("Feuil2").Range("IV1").End(xlToLeft) Else Columns(Split(Colonne, ",")(i)).Copy Sheets("Feuil2").Range("IV1").End(xlToLeft).Offset(0, 1) End If Next
Ces lignes sont à mettre bout à bout :
Colonne = InputBox("Saisissez la lettre des colonnes séparée d'une virgule", "Colonnes à recopier", "A,B,...")
If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address And Sheets("Feuil2").Range("A1") = "" Then
Celà te convient-il ???
Dis moi ???
Rebonjour Julie
Je propose donc de saisir dans une boîte de dialogue les lettres des
colonnes à recopier séparées d'une virgule avec ce code (Recopie en Feuil2):
Colonne = InputBox("Saisissez la lettre des colonnes séparée d'une virgule",
"Colonnes à recopier", "A,B,...")
On Error Resume Next
For i = 0 To UBound(Split(Colonne, ","))
If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address
And Sheets("Feuil2").Range("A1") = "" Then
Columns(Split(Colonne, ",")(i)).Copy
Sheets("Feuil2").Range("IV1").End(xlToLeft)
Else
Columns(Split(Colonne, ",")(i)).Copy
Sheets("Feuil2").Range("IV1").End(xlToLeft).Offset(0, 1)
End If
Next
Ces lignes sont à mettre bout à bout :
Colonne = InputBox("Saisissez la lettre des colonnes séparée d'une virgule",
"Colonnes à recopier", "A,B,...")
If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address
And Sheets("Feuil2").Range("A1") = "" Then
Je propose donc de saisir dans une boîte de dialogue les lettres des colonnes à recopier séparées d'une virgule avec ce code (Recopie en Feuil2):
Colonne = InputBox("Saisissez la lettre des colonnes séparée d'une virgule", "Colonnes à recopier", "A,B,...") On Error Resume Next For i = 0 To UBound(Split(Colonne, ",")) If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address And Sheets("Feuil2").Range("A1") = "" Then Columns(Split(Colonne, ",")(i)).Copy Sheets("Feuil2").Range("IV1").End(xlToLeft) Else Columns(Split(Colonne, ",")(i)).Copy Sheets("Feuil2").Range("IV1").End(xlToLeft).Offset(0, 1) End If Next
Ces lignes sont à mettre bout à bout :
Colonne = InputBox("Saisissez la lettre des colonnes séparée d'une virgule", "Colonnes à recopier", "A,B,...")
If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address And Sheets("Feuil2").Range("A1") = "" Then
Celà te convient-il ???
Dis moi ???
JulieH
Bonjour,
Je m'excuse pour ma réponse tardive mais j'étais absente du bureau aujourd'hui. La solution proposée fonctionne très bien et je suis vraiment épatée par votre imagination et les solutions proposées. Même si j'envisageais autre chose, je pense que je vais l'utiliser en attendant de trouver.
Merci beaucoup
Julie
FFO a écrit :
Rebonjour Julie
Je propose donc de saisir dans une boîte de dialogue les lettres des colonnes à recopier séparées d'une virgule avec ce code (Recopie en Feuil2):
Colonne = InputBox("Saisissez la lettre des colonnes séparée d'une virgule", "Colonnes à recopier", "A,B,...") On Error Resume Next For i = 0 To UBound(Split(Colonne, ",")) If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address And Sheets("Feuil2").Range("A1") = "" Then Columns(Split(Colonne, ",")(i)).Copy Sheets("Feuil2").Range("IV1").End(xlToLeft) Else Columns(Split(Colonne, ",")(i)).Copy Sheets("Feuil2").Range("IV1").End(xlToLeft).Offset(0, 1) End If Next
Ces lignes sont à mettre bout à bout :
Colonne = InputBox("Saisissez la lettre des colonnes séparée d'une virgule", "Colonnes à recopier", "A,B,...")
If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address And Sheets("Feuil2").Range("A1") = "" Then
Celà te convient-il ???
Dis moi ???
Bonjour,
Je m'excuse pour ma réponse tardive mais j'étais absente du bureau
aujourd'hui.
La solution proposée fonctionne très bien et je suis vraiment épatée
par votre imagination et les solutions proposées. Même si j'envisageais
autre chose, je pense que je vais l'utiliser en attendant de trouver.
Merci beaucoup
Julie
FFO a écrit :
Rebonjour Julie
Je propose donc de saisir dans une boîte de dialogue les lettres des
colonnes à recopier séparées d'une virgule avec ce code (Recopie en Feuil2):
Colonne = InputBox("Saisissez la lettre des colonnes séparée d'une virgule",
"Colonnes à recopier", "A,B,...")
On Error Resume Next
For i = 0 To UBound(Split(Colonne, ","))
If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address
And Sheets("Feuil2").Range("A1") = "" Then
Columns(Split(Colonne, ",")(i)).Copy
Sheets("Feuil2").Range("IV1").End(xlToLeft)
Else
Columns(Split(Colonne, ",")(i)).Copy
Sheets("Feuil2").Range("IV1").End(xlToLeft).Offset(0, 1)
End If
Next
Ces lignes sont à mettre bout à bout :
Colonne = InputBox("Saisissez la lettre des colonnes séparée d'une virgule",
"Colonnes à recopier", "A,B,...")
If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address
And Sheets("Feuil2").Range("A1") = "" Then
Je m'excuse pour ma réponse tardive mais j'étais absente du bureau aujourd'hui. La solution proposée fonctionne très bien et je suis vraiment épatée par votre imagination et les solutions proposées. Même si j'envisageais autre chose, je pense que je vais l'utiliser en attendant de trouver.
Merci beaucoup
Julie
FFO a écrit :
Rebonjour Julie
Je propose donc de saisir dans une boîte de dialogue les lettres des colonnes à recopier séparées d'une virgule avec ce code (Recopie en Feuil2):
Colonne = InputBox("Saisissez la lettre des colonnes séparée d'une virgule", "Colonnes à recopier", "A,B,...") On Error Resume Next For i = 0 To UBound(Split(Colonne, ",")) If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address And Sheets("Feuil2").Range("A1") = "" Then Columns(Split(Colonne, ",")(i)).Copy Sheets("Feuil2").Range("IV1").End(xlToLeft) Else Columns(Split(Colonne, ",")(i)).Copy Sheets("Feuil2").Range("IV1").End(xlToLeft).Offset(0, 1) End If Next
Ces lignes sont à mettre bout à bout :
Colonne = InputBox("Saisissez la lettre des colonnes séparée d'une virgule", "Colonnes à recopier", "A,B,...")
If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address And Sheets("Feuil2").Range("A1") = "" Then
Celà te convient-il ???
Dis moi ???
FFO
Rebonjour Julie
J'ai étudié ta solution du formulaire Je te propose dans cette optique ce code que tu mets dans le code d'un bouton d'un formulaire :
Private Sub CommandButton1_Click() For i = 1 To 26 If UserForm1("CheckBox" & i).Object.Value = "Vrai" Then If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address And Sheets("Feuil2").Range("A1") = "" Then Sheets("Feuil1").Cells(1, i).EntireColumn.Copy Sheets("Feuil2").Range("IV1").End(xlToLeft) Else Sheets("Feuil1").Cells(1, i).EntireColumn.Copy Sheets("Feuil2").Range("IV1").End(xlToLeft).Offset(0, 1) End If End If Next End Sub
Tu mets 26 cases à cocher (26 lettres de l'alphabet) dans ce formulaire avec en regard la lettre de chaque colonne (bien respecter le même indice de chaque CheckBok avec celui de la colonne) Puis tu mets cette ligne dans une macro :
UserForm1.Show
Tu actives la macro Dans le formulaire tu coches les colonnes à recopier Puis tu actives le Bouton de recopie
Tu dois obtenir les colonnes cochées de la Feuil1 dans la Feuil2
J'ai étudié ta solution du formulaire
Je te propose dans cette optique ce code que tu mets dans le code d'un
bouton d'un formulaire :
Private Sub CommandButton1_Click()
For i = 1 To 26
If UserForm1("CheckBox" & i).Object.Value = "Vrai" Then
If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address
And Sheets("Feuil2").Range("A1") = "" Then
Sheets("Feuil1").Cells(1, i).EntireColumn.Copy
Sheets("Feuil2").Range("IV1").End(xlToLeft)
Else
Sheets("Feuil1").Cells(1, i).EntireColumn.Copy
Sheets("Feuil2").Range("IV1").End(xlToLeft).Offset(0, 1)
End If
End If
Next
End Sub
Tu mets 26 cases à cocher (26 lettres de l'alphabet) dans ce formulaire
avec en regard la lettre de chaque colonne (bien respecter le même indice de
chaque CheckBok avec celui de la colonne)
Puis tu mets cette ligne dans une macro :
UserForm1.Show
Tu actives la macro
Dans le formulaire tu coches les colonnes à recopier
Puis tu actives le Bouton de recopie
Tu dois obtenir les colonnes cochées de la Feuil1 dans la Feuil2
J'ai étudié ta solution du formulaire Je te propose dans cette optique ce code que tu mets dans le code d'un bouton d'un formulaire :
Private Sub CommandButton1_Click() For i = 1 To 26 If UserForm1("CheckBox" & i).Object.Value = "Vrai" Then If Sheets("Feuil2").Range("IV1").End(xlToLeft).Address = Range("A1").Address And Sheets("Feuil2").Range("A1") = "" Then Sheets("Feuil1").Cells(1, i).EntireColumn.Copy Sheets("Feuil2").Range("IV1").End(xlToLeft) Else Sheets("Feuil1").Cells(1, i).EntireColumn.Copy Sheets("Feuil2").Range("IV1").End(xlToLeft).Offset(0, 1) End If End If Next End Sub
Tu mets 26 cases à cocher (26 lettres de l'alphabet) dans ce formulaire avec en regard la lettre de chaque colonne (bien respecter le même indice de chaque CheckBok avec celui de la colonne) Puis tu mets cette ligne dans une macro :
UserForm1.Show
Tu actives la macro Dans le formulaire tu coches les colonnes à recopier Puis tu actives le Bouton de recopie
Tu dois obtenir les colonnes cochées de la Feuil1 dans la Feuil2