OVH Cloud OVH Cloud

requete d'aide sous Visual Basic

4 réponses
Avatar
gothik
Bonjours,

Depuis peu je suis sur un projet avec Visual Basic. Seulement je n'ai jamais
eut l'occation de mettre le nez dedans.
Je vais vous exposer mon problème en espérant que quelqu'un puisse m'aider.

Enfait je ne sais pas du tout comment creer une programmation pour une
creation d'onglets selon les données d'une colonne. Puis que le programme
copie et colle automatique les données des ligne correspondantes.

Par exemple les lignes 1 a 10 correspondent à AUBE et les lignes 11 a 20 à
AURORE
( etc...). Création des onglets AUBE et AURORE puis copie et colle des
lignes correspondantes.

Merci d'avance pour votre aide.

4 réponses

Avatar
anonymousA
Bonjour,

en plusieurs fois et sans macro, faire un filtre élaboré

avec VBA c'est possible mais celà te sera t-il utlile compte tenu de ce que
je t'indique précédemment

A+


Bonjours,

Depuis peu je suis sur un projet avec Visual Basic. Seulement je n'ai jamais
eut l'occation de mettre le nez dedans.
Je vais vous exposer mon problème en espérant que quelqu'un puisse m'aider.

Enfait je ne sais pas du tout comment creer une programmation pour une
creation d'onglets selon les données d'une colonne. Puis que le programme
copie et colle automatique les données des ligne correspondantes.

Par exemple les lignes 1 a 10 correspondent à AUBE et les lignes 11 a 20 à
AURORE
( etc...). Création des onglets AUBE et AURORE puis copie et colle des
lignes correspondantes.

Merci d'avance pour votre aide.


Avatar
gothik
Merci. Je vais essayer votre méthode.
Cependant je ne serais pas l'utilisateur final, c'est pour cela que jaurais
souhaiter mettre cela sous macro. Comme ca en un clic le user pourra le faire.


Bonjour,

en plusieurs fois et sans macro, faire un filtre élaboré

avec VBA c'est possible mais celà te sera t-il utlile compte tenu de ce que
je t'indique précédemment

A+


Bonjours,

Depuis peu je suis sur un projet avec Visual Basic. Seulement je n'ai jamais
eut l'occation de mettre le nez dedans.
Je vais vous exposer mon problème en espérant que quelqu'un puisse m'aider.

Enfait je ne sais pas du tout comment creer une programmation pour une
creation d'onglets selon les données d'une colonne. Puis que le programme
copie et colle automatique les données des ligne correspondantes.

Par exemple les lignes 1 a 10 correspondent à AUBE et les lignes 11 a 20 à
AURORE
( etc...). Création des onglets AUBE et AURORE puis copie et colle des
lignes correspondantes.

Merci d'avance pour votre aide.




Avatar
anonymousA
re,

un exmple complet à adapter si tu préfères que les copies n'aient lieu que
sur des onglets et ne créent pas de fichiers

Sub cellulesvisibles()

Dim Tabentree, Sandoublons As New Collection
Dim plagefiltre As Range, plagefiltrevisible As Range, i As Integer,
nbchamps As Integer

'on invalide le raffraichissement de l'écran

Application.ScreenUpdating = False

'on initialise une variable , en prévision de la suite

Set wbk = ActiveWorkbook

'on donne le nombre de champs (pour moi ici 11 champs)
nbchamps = 11

'on remet l'ensemble des filtres à blanc

For i = 1 To nbchamps
Selection.AutoFilter Field:=i
Next

'on affecte à une variable la zone de filtre

Set plagefiltre = ActiveSheet.AutoFilter.Range

'on commence par déterminer le nombre de villes différentes en constituant
une collection des villes
'ici les villes sont dans le champ N°8, donc on s'interesse à la colonne 8.
Dans cet
'exemple , on cherchait à récupérer des informations sur un critère defiltre
'qui concernait des villes

Tabentree = plagefiltre.Columns(8).Value

For i = LBound(Tabentree, 1) To UBound(Tabentree, 1)
On Error Resume Next
Sandoublons.Add Tabentree(i, 1), CStr(Tabentree(i, 1))
Next
On Error GoTo 0

'une fois déterminé le nombre de villes, on va parcourir la collection pour
faire autant de fois une recherche
'filtrée qu'il y a de villes
'on part de i=2 pour ne pas prendre le nom de l'entete

For i = 2 To Sandoublons.Count

'ici la recherche se fait sur le champ N°8
plagefiltre.AutoFilter Field:=8, Criteria1:=Sandoublons(i)
Set plagefiltrevisible = plagefiltre.SpecialCells(xlCellTypeVisible)
'on réalise l'opération de copie
plagefiltrevisible.Copy
creerfichierdest Sandoublons(i)
'on passe à la ville suivante
Next

'on remet l'ensemble des filtres à blanc

For i = 1 To nbchamps
Selection.AutoFilter Field:=i
Next

'on reset la collection

Set Sandoublons = Nothing

'on remet le raffraichissement de l'écran

Application.ScreenUpdating = False

'on réactive les alertes que l'on avait enlevées

Application.DisplayAlerts = True

End Sub

Sub creerfichierdest(nomville As String)

'pour eviter le message de confirmaion d'écrasement d'un fichier dèjà existant
Application.DisplayAlerts = False

'on crée un nouveau fichier
Workbooks.Add

'on copie les données
ActiveSheet.Paste

'on libère le presse-papiers
Application.CutCopyMode = False

'on enregistre le fichier portant le nom de la ville dans un répertoire que
l'on a préalablement choisi (il faut bien sur qu'il existe sur le disque:
'on met un mdp pour permettre qu'à l'ouverture si le mdp n'est pas frappé,
le fichier s'ouvre en lecture seule
'si le fichier existe déjà dans le répertoire, on écrase l'ancien et on en
met un nouveau à la place

On Error Resume Next
With ActiveWorkbook
.SaveAs "D:titi" & nomville & ".xls", , , "cc"
If Err.Number <> 0 Then
Err.Clear
Kill "D:titi" & nomville & ".xls"
.SaveAs "D:titi" & nomville & ".xls", , , "cc"
End If
.Close
End With

'on revient au fichier source

wbk.Activate

End Sub

A+


Merci. Je vais essayer votre méthode.
Cependant je ne serais pas l'utilisateur final, c'est pour cela que jaurais
souhaiter mettre cela sous macro. Comme ca en un clic le user pourra le faire.


Bonjour,

en plusieurs fois et sans macro, faire un filtre élaboré

avec VBA c'est possible mais celà te sera t-il utlile compte tenu de ce que
je t'indique précédemment

A+


Bonjours,

Depuis peu je suis sur un projet avec Visual Basic. Seulement je n'ai jamais
eut l'occation de mettre le nez dedans.
Je vais vous exposer mon problème en espérant que quelqu'un puisse m'aider.

Enfait je ne sais pas du tout comment creer une programmation pour une
creation d'onglets selon les données d'une colonne. Puis que le programme
copie et colle automatique les données des ligne correspondantes.

Par exemple les lignes 1 a 10 correspondent à AUBE et les lignes 11 a 20 à
AURORE
( etc...). Création des onglets AUBE et AURORE puis copie et colle des
lignes correspondantes.

Merci d'avance pour votre aide.






Avatar
gothik
Je vous remercie pour toutes ces infos, je vais immédiatement en faire
l'application.
C'est tres agreable de pouvoir compter sur l'aide de personnes competentes
en la matiere.
Je vous en suis reconnaissant.

cordialement,