Créer et nommer un onglet avec une variable
Dernière réponse : dans Programmation
Bonjour,
Je souhaite créer des onglets et les nommer différemment pour pouvoir y coller les infos.
J'explique je récupère un export excel qui contient les différentes UP de production : 6C, 6D,...
je souhaite créer une variable nommée UP qui balayera chaque ligne et a chaque changement d'UP créera un onglet qu'il nommera par le nom de l'UP concerné et dans lequel je viendrai y coller toutes les lignes du dit UP.
Ma macro est la suivante mais elle ne fonctionne pas :
'Sub CREERONGLET()
'
' CREERONGLET Macro
' Macro enregistrée le 17/09/2010 par Interforum
'
'Dim UP As String
'For i = 2 To 300
'
' If Range("A" & i).Value = "" Then
' Range("W" & i).Select
'If ActiveCell.Value = "6C" Then
' FOURNISSEURS = Range("C" & i).Value
' On Error Resume Next
' Sheets("SOURCE").Select
'Sheets("SOURCE").Copy after:=Sheets(2)
'S'heets("SOURCE").Range("AE" & i).Value = "X"
'toutes les op de collage et de mise en forme
'If Range("A" & i).Value = "6D" Then
'Sheets.Add.Name = UP
'Sheets("SOURCE").Select
'Sheets("SOURCE").Copy after:=Sheets(2)
'Active Sheet.Name = "6D"
'On Error Resume Next
'End If
'End If
'End Sub
Quelqu'un peut il m'aider
Je souhaite créer des onglets et les nommer différemment pour pouvoir y coller les infos.
J'explique je récupère un export excel qui contient les différentes UP de production : 6C, 6D,...
je souhaite créer une variable nommée UP qui balayera chaque ligne et a chaque changement d'UP créera un onglet qu'il nommera par le nom de l'UP concerné et dans lequel je viendrai y coller toutes les lignes du dit UP.
Ma macro est la suivante mais elle ne fonctionne pas :
'Sub CREERONGLET()
'
' CREERONGLET Macro
' Macro enregistrée le 17/09/2010 par Interforum
'
'Dim UP As String
'For i = 2 To 300
'
' If Range("A" & i).Value = "" Then
' Range("W" & i).Select
'If ActiveCell.Value = "6C" Then
' FOURNISSEURS = Range("C" & i).Value
' On Error Resume Next
' Sheets("SOURCE").Select
'Sheets("SOURCE").Copy after:=Sheets(2)
'S'heets("SOURCE").Range("AE" & i).Value = "X"
'toutes les op de collage et de mise en forme
'If Range("A" & i).Value = "6D" Then
'Sheets.Add.Name = UP
'Sheets("SOURCE").Select
'Sheets("SOURCE").Copy after:=Sheets(2)
'Active Sheet.Name = "6D"
'On Error Resume Next
'End If
'End If
'End Sub
Quelqu'un peut il m'aider
Autres pages sur : creer nommer onglet variable
Lassé par la pub ? Créez un compte
Bonjour,
Je souhaite créer des onglets et les nommer différemment pour pouvoir y coller les infos.
J'explique je récupère un export excel qui contient les différentes UP de production : 6C, 6D,...
je souhaite créer une variable nommée UP qui balayera chaque ligne et a chaque changement d'UP créera un onglet qu'il nommera par le nom de l'UP concerné et dans lequel je viendrai y coller toutes les lignes du dit UP.
Ma macro est la suivante mais elle ne fonctionne pas :
Quelqu'un peut il m'aider ?
Je souhaite créer des onglets et les nommer différemment pour pouvoir y coller les infos.
J'explique je récupère un export excel qui contient les différentes UP de production : 6C, 6D,...
je souhaite créer une variable nommée UP qui balayera chaque ligne et a chaque changement d'UP créera un onglet qu'il nommera par le nom de l'UP concerné et dans lequel je viendrai y coller toutes les lignes du dit UP.
Ma macro est la suivante mais elle ne fonctionne pas :
Sub CreerOnglet()
Dim UP As String
For i = 2 To 300
If Range("A" & i).Value = "" Then
Range("W" & i).Select
If ActiveCell.Value = "6C" Then
UP = Range("C" & i).Value
On Error Resume Next
Sheets("SOURCE" ).Select
Sheets("SOURCE" ).Copy after:=Sheets(2)
Sheets("SOURCE" ).Range("AE" & i).Value = "X"
If Range("A" & i).Value = "6D" Then
Sheets.Add.Name = UP
Sheets("SOURCE" ).Select
Sheets("SOURCE" ).Copy after:=Sheets(2)
Active Sheet.Name = "6D"
On Error Resume Next
End If
End If
End Sub
Quelqu'un peut il m'aider ?
Maladresse réparée
Ouh quelle horreur ce code !
Alors d'abord, tu vas méditer sur la nécessaire indentation du code. Allez hop : http://fr.wikipedia.org/wiki/Indentation#Informatique
Ca y est ? C'est promis, tu n'écriras plus le moindre bout de code sans l'indenter ?
Si c'est oui, c'est bien, on continue.
Dis-donc, ce code ne peut rien faire, il n'est même pas complet !
Où est le Next du For ? Je vois trois If ... Then mais seulement deux End If ! Et que sont ces On Error .. qui se baladent partout.
Bon, je te demanderais bien de me réécrire tout ça, mais je préfère que tu lâches le code pour te concentrer sur ton explication. Voudrais-tu recommencer, en essayant d'être plus clair ?
A te lire.
Ouh quelle horreur ce code !
Alors d'abord, tu vas méditer sur la nécessaire indentation du code. Allez hop : http://fr.wikipedia.org/wiki/Indentation#Informatique
Ca y est ? C'est promis, tu n'écriras plus le moindre bout de code sans l'indenter ?
Si c'est oui, c'est bien, on continue.
Dis-donc, ce code ne peut rien faire, il n'est même pas complet !
Où est le Next du For ? Je vois trois If ... Then mais seulement deux End If ! Et que sont ces On Error .. qui se baladent partout.
Bon, je te demanderais bien de me réécrire tout ça, mais je préfère que tu lâches le code pour te concentrer sur ton explication. Voudrais-tu recommencer, en essayant d'être plus clair ?
A te lire.
Tout d'abord merci de prêter attention à ma demande. Je vais t'expliquer quel est mon besoin exactement et peut être pourras tu me guider pour le code.
Dans un premier temps :
Le premier onglet de mon fichier excel est nommé "SOURCE", c'est dans cet onglet que je viens coller un état de ma production actualisé par unité de production (état des colis en temps réel).
La première colonne de mon tableau est l'unité de production UP, au nombre de 5 : 6C, 6D, 6G, 6U, 6V.
Mon besoin est le suivant :
Je souhaite que ma macro balaye ma colonne UP et quelle créée un onglet à chaque nouvel UP qu'elle le nomme avec le nom de l'UP et qu'elle y colle toutes les colonnes concernées.
Dans un deuxième temps :
Le deuxième onglet de mon fichier est nommé "SUIVI DES RAFALES", c'est dans cet onglet que je viens coller un état global des commandes avec les dates de fin de préparation.
Je souhaite croiser les deux fichiers excel UP et SUIVI DES RAFALES afin d'avoir une UP actualisée par onglet et trier par dates et heures de fin de preparation.
SVP Dites moi que je suis un peu plus explicite dans les mots que dans le code
merci d'avance pour votre aide précieuse
Salut,
Tu as deux problèmes. On va tâcher dans régler un seul à la fois.
Commençons par le premier si tu veux bien.
Bon.
Or ta colonne UP ne contient que 6C, 6D, 6G, 6U, 6V. C'est ça ? Donc il faut créer chaque onglet si on le trouve dans ta colonne.
Ça me paraît tellement saugrenu que je me dis que je n'ai pas compris. Mais bon...
Il faut appeler Init() avant CreationFeuillesUP() bien sûr.
Tu as deux problèmes. On va tâcher dans régler un seul à la fois.
Commençons par le premier si tu veux bien.
Citation :
La première colonne de mon tableau est l'unité de production UP, au nombre de 5 : 6C, 6D, 6G, 6U, 6V. Citation :
Je souhaite que ma macro balaye ma colonne UP et quelle créée un onglet à chaque nouvel UP qu'elle le nomme avec le nom de l'UP et qu'elle y colle toutes les colonnes concernées.Ça me paraît tellement saugrenu que je me dis que je n'ai pas compris. Mais bon...
EDIT!
Option Explicit Enum type_UP UP_6C UP_6D UP_6G UP_6U UP_6V End Enum Dim nom_UP(UP_6C To UP_6V) As String Sub Init() nom_UP(UP_6C) = "UP_6C" nom_UP(UP_6D) = "UP_6D" nom_UP(UP_6G) = "UP_6G" nom_UP(UP_6U) = "UP_6U" nom_UP(UP_6V) = "UP_6V" End Sub Sub CreationFeuillesUP() Dim cell As Range Dim i As Integer Dim sh As Worksheet Dim UP_vu(UP_6C To UP_6V) As Boolean For i = UP_6C To UP_6V UP_vu(i) = False Next For Each cell In Columns(1).Cells For i = UP_6C To UP_6V If cell.Value = nom_UP(i) Then UP_vu(i) = True Next Next For i = UP_6C To UP_6V If UP_vu(i) Then Set sh = Worksheets.Add(, Sheets(Sheets.count)) sh.Name = nom_UP(i) End If Next End Sub
Il faut appeler Init() avant CreationFeuillesUP() bien sûr.
Bonjour,
En plus des réflexions sur l'indentation, j'ajouterai une réflexion sur les termes Excel ...
Traduire ton texte n'est pas évident !
Déjà c'est pas des onglets mais des feuilles (problème linguistique mais qu'il faut saisir pour trouver les commandes VBA correspondant à la création/suppression etc.).
Ensuite, tu dis que tu as une feuille "SOURCE" et une feuille "SUIVI DES RAFALES" ... Après tu parles de 2 fichiers "UP" et "SUIVI DES RAFALES" ...
Je suppose que la dernière est une simple erreur.
Voici ce que je comprends de ton texte :
Tu souhaites une macro (un script VBA) qui a les actions suivantes :
Pour chaque ligne de la feuille "SOURCE", on crée une feuille de titre 'VALEUR DE LA COLONNE A'
Dans chacune de ces feuilles, tu souhaites qu'une copie des informations des colonnes B à ? de la feuille "SOURCE" soit effectué (pour la ligne correspondante bien sur)
Tu souhaites que les informations de chaque onglet ainsi créé soient trié en fonction des données de la feuille "SUIVI DES RAFALES"
Si c'est pas ça je pense qu'il va falloir être beaucoup plus explicite
(un exemple serait le bien venue dans ton cas ... 2 ou 3 petites capturent d'écran avec des valeurs fictives)
Après, comme zeb, c'est quoi tous ces "on error" ???
Lien utile : Error Handling in VBA
@ zeb : tu en fais quoi de UP_vu ???
Non ???
En plus des réflexions sur l'indentation, j'ajouterai une réflexion sur les termes Excel ...
Traduire ton texte n'est pas évident !
Déjà c'est pas des onglets mais des feuilles (problème linguistique mais qu'il faut saisir pour trouver les commandes VBA correspondant à la création/suppression etc.).
Ensuite, tu dis que tu as une feuille "SOURCE" et une feuille "SUIVI DES RAFALES" ... Après tu parles de 2 fichiers "UP" et "SUIVI DES RAFALES" ...
Je suppose que la dernière est une simple erreur.
Voici ce que je comprends de ton texte :
Tu souhaites une macro (un script VBA) qui a les actions suivantes :
Si c'est pas ça je pense qu'il va falloir être beaucoup plus explicite
(un exemple serait le bien venue dans ton cas ... 2 ou 3 petites capturent d'écran avec des valeurs fictives)
Après, comme zeb, c'est quoi tous ces "on error" ???
Lien utile : Error Handling in VBA
@ zeb : tu en fais quoi de UP_vu ???
Sub CreationFeuillesUP()
'.......
For i = UP_6C To UP_6V
If UP_vu(i) Then
Set sh = Worksheets.Add(, Worksheets(Worksheets.count))
sh.Name = nom_UP(i)
End If
Next
End Sub
Non ???
C'est exactement ça :
Mais je précise juste une chose, la macro ne créée pas une feuille par ligne, en fait à la fin il y a 5 feuilles nommées "6C", "6D", "6G", "6U", "6V" dans lesquelles vont se coller les lignes qui correspondent à l'UP.
je vais faire une capture d'écran, par contre comment je l'insère ?
Mais je précise juste une chose, la macro ne créée pas une feuille par ligne, en fait à la fin il y a 5 feuilles nommées "6C", "6D", "6G", "6U", "6V" dans lesquelles vont se coller les lignes qui correspondent à l'UP.
je vais faire une capture d'écran, par contre comment je l'insère ?
En relisant tout ça, je me dis qu'on s'est bien embêter pour pas grand chose.
Titi, t'es qu'un boulet qui ne sait même pas nous dire que tu veux juste copier les lignes de telle feuille qui commencent par 6C dans la feuille 6C.
Je comprends onglet comme feuille de calcul ou feuille graphique. En général, on ne traite que des feuilles de calcul, que l'on abrège volontiers en feuilles. Soit. Je fais correspondre onglet à Sheet, feuille de calcul à Worksheet et feuille graphique à Chart. Ça ne pose pas de problème tant qu'on utilise les bons objets en programmation.
Titi, t'es qu'un boulet qui ne sait même pas nous dire que tu veux juste copier les lignes de telle feuille qui commencent par 6C dans la feuille 6C.
Je comprends onglet comme feuille de calcul ou feuille graphique. En général, on ne traite que des feuilles de calcul, que l'on abrège volontiers en feuilles. Soit. Je fais correspondre onglet à Sheet, feuille de calcul à Worksheet et feuille graphique à Chart. Ça ne pose pas de problème tant qu'on utilise les bons objets en programmation.
Dim ws_UP(UP_6C To UP_6V) As Worksheet
Dim i As Integer
Dim b As Boolean
Dim cell_source As Range
Dim cell_UP(UP_6C To UP_6V) As Range
' // Création de toutes les feuilles UP, si elles n'existent pas encore
For i = UP_6C To UP_6V
b = False
For Each ws In Worksheets
If ws.Name = nom_UP(i) Then
b = True
Exit For
End If
Next
If Not b Then
Set ws_UP(i) = Worksheets.Add(, Sheets(Sheets.count))
ws_UP(i).Name = nom_UP(i)
' // Création d'un pointeur sur la prochaine ligne à remplir
Set cell_UP(i) = ws_UP(i).Range("A1")
Else
' // Initialisation du pointeur sur la prochaine ligne à remplir
Set cell_UP(i) = ws_UP(i).Range("A65536").End(xlUp)
If cell_UP(i).text <> "" Then Set cell_UP(i) = cell_UP(i).Offet(1)
End If
Next
For Each cell_source In Worksheets("SOURCE").Columns(1).Cells
For i = UP_6C To UP_6V
If cell_source.Value = nom_UP(i) Then
cell_source.EntireRow.Copy Destination:=cell_UP(i)
Set cell_UP(i) = cell_UP(i).Offet(1)
End If
Next
Next
Si tu as toi-aussi de jolies choses à proposer, je t'invite à participer à ce topic :
http://www.presence-pc.com/forum/ppc/Programmation/tuto...
Je m'y sens un peu seul
zeb a dit :
Si tu as toi-aussi de jolies choses à proposer, je t'invite à participer à ce topic :
http://www.presence-pc.com/forum/ppc/Programmation/tuto...
Je m'y sens un peu seul
J'ai visité, et les seules petites astuces que j'avais sont déjà listé...
Après il y a "astuce" et "bonne pratique" ... (genre Option Explicit, la gestion des erreurs, etc.) ...
Mais je ne suis pas un pro du VBA ... Je le manipule un peu (à force d'avoir des *$~%£ de documents bizarres ...) mais c'est pas vraiment ma tasse de thé !
Je peux te faire un topic similaire en Java, ADA95 et Fortran77 si tu veux (mais j'ai la flemme).
Bof ... Pour java la FAQ de "developpez.com" est excellente.
ADA95 et Fortran77 ne sont utilisé que par des puristes qui connaissent déjà tout ...
Si j'ai un peu de temps je ferais un petit truc ... Mais bon ...
A la limite, plus intéressant, la mise en place d'une Architecture EDSOA ... Et encore, on trouve tout sur google ...
ADA95 et Fortran77 ne sont utilisé que par des puristes qui connaissent déjà tout ...
Si j'ai un peu de temps je ferais un petit truc ... Mais bon ...
A la limite, plus intéressant, la mise en place d'une Architecture EDSOA ... Et encore, on trouve tout sur google ...
Merci mais je ne comprend pas tout et surtout je n'arrive pas à l'exécuter ?
elle me dit "erreur de compilation "constante requise""
je dois te sembler bête mais je suis novice même si je suis quand même un boulet
ma feuille source contient les infos suivantes pour illustrer :
A B C D E...
1 UP RAFALE LOT ...
2 6C 21008 25
3 6C 22541 42
4 6D 69874 52
5 6G 45412 64
... 6V 25136 84
Merci d'avance même si je te parait bêbête.
elle me dit "erreur de compilation "constante requise""
Dim ws_UP(UP_6C To [color=#ff001d]UP_6V)[/color] As Worksheet
Dim i As Integer
Dim b As Boolean
Dim cell_source As Range
Dim cell_UP(UP_6C To UP_6V) As Range
' // Création de toutes les feuilles UP, si elles n'existent pas encore
For i = UP_6C To UP_6V
b = False
For Each ws In Worksheets
If ws.Name = nom_UP(i) Then
b = True
Exit For
End If
Next
If Not b Then
Set ws_UP(i) = Worksheets.Add(, Sheets(Sheets.Count))
ws_UP(i).Name = nom_UP(i)
' // Création d'un pointeur sur la prochaine ligne à remplir
Set cell_UP(i) = ws_UP(i).Range("A1")
Else
' // Initialisation du pointeur sur la prochaine ligne à remplir
Set cell_UP(i) = ws_UP(i).Range("A65536").End(xlUp)
If cell_UP(i).Text <> "" Then Set cell_UP(i) = cell_UP(i).Offet(1)
End If
Next
For Each cell_source In Worksheets("SOURCE").Columns(1).Cells
For i = UP_6C To UP_6V
If cell_source.Value = nom_UP(i) Then
cell_source.EntireRow.Copy Destination:=cell_UP(i)
Set cell_UP(i) = cell_UP(i).Offet(1)
End If
Next
Next
je dois te sembler bête mais je suis novice même si je suis quand même un boulet
ma feuille source contient les infos suivantes pour illustrer :
A B C D E...
1 UP RAFALE LOT ...
2 6C 21008 25
3 6C 22541 42
4 6D 69874 52
5 6G 45412 64
... 6V 25136 84
Merci d'avance même si je te parait bêbête.
titi0685 a dit :
Merci mais je ne comprend pas tout et surtout je n'arrive pas à l'exécuter ?elle me dit "erreur de compilation "constante requise""
Normal, il ne t'a donné que la dernière partie du code ... Il faut reprendre le reste :
Option Explicit Enum type_UP UP_6C UP_6D UP_6G UP_6U UP_6V End Enum ' le = False est inutile puisque c'est la valeur par défaut, mais ça ne gâche rien Dim nom_UP_init As Boolean = False Dim nom_UP(UP_6C To UP_6V) As String Sub Init() nom_UP(UP_6C) = "6C" nom_UP(UP_6D) = "6D" nom_UP(UP_6G) = "6G" nom_UP(UP_6U) = "6U" nom_UP(UP_6V) = "6V" nom_UP_init = True End Sub Sub CreationFeuillesUP() Dim ws_UP(UP_6C To [color=#ff001d]UP_6V)[/color] As Worksheet Dim i As Integer Dim b As Boolean Dim cell_source As Range Dim cell_UP(UP_6C To UP_6V) As Range ' init nom_UP If nom_UP_init = False Then Init() ' // Création de toutes les feuilles UP, si elles n'existent pas encore For i = UP_6C To UP_6V b = False For Each ws In Worksheets If ws.Name = nom_UP(i) Then b = True Exit For End If Next If Not b Then Set ws_UP(i) = Worksheets.Add(, Sheets(Sheets.Count)) ws_UP(i).Name = nom_UP(i) ' // Création d'un pointeur sur la prochaine ligne à remplir Set cell_UP(i) = ws_UP(i).Range("A1") Else ' // Initialisation du pointeur sur la prochaine ligne à remplir Set cell_UP(i) = ws_UP(i).Range("A65536").End(xlUp) If cell_UP(i).Text <> "" Then Set cell_UP(i) = cell_UP(i).Offet(1) End If Next For Each cell_source In Worksheets("SOURCE").Columns(1).Cells For i = UP_6C To UP_6V If cell_source.Value = nom_UP(i) Then cell_source.EntireRow.Copy Destination:=cell_UP(i) Set cell_UP(i) = cell_UP(i).Offet(1) End If Next Next End Sub
Tu n'as plus qu'à appeler "CreationFeuillesUP()" au bon moment !
Citation :
Désolé mais je dois être vraiment idiot
Citation :
je n'arrive toujours pas à l'executer"J'y arrive pô" Ben qu'est-ce que tu n'arrives pas à faire. A lancer la macro ? Qu'est-ce que tu fais, que fait Excel, quels sont les message d'erreur ?
J'ai copié le script dans une macro1 et lorsque je l'exécute elle me surligne "Option Explicite" et me marque "instruction incorrecte dans une procédure", puis dans "création de toutes les feuilles" elle me marque "variable non définie" à propos de "ws" dans "For each ws in worksheets".
Dis moi que je fais n'importe quoi et éclaire moi car j'y pige plus rien.
Merci
Dis moi que je fais n'importe quoi et éclaire moi car j'y pige plus rien.
Merci
Alors, je me pose une question à propos de ça :
Le "e" dans "Explicite" c'est toi qui l'a mis en recopiant, ou c'est ce qui était écrit ?
Car il n'y a pas de "e" à la fin du mot.
En effet, un petit oubli :
Il manquait la ligne 25.
titi0685 a dit :
elle me surligne "Option Explicite" et me marque "instruction incorrecte dans une procédure",Le "e" dans "Explicite" c'est toi qui l'a mis en recopiant, ou c'est ce qui était écrit ?
Car il n'y a pas de "e" à la fin du mot.
titi0685 a dit :
"variable non définie" à propos de "ws" dans "For each ws in worksheets".En effet, un petit oubli :
Option Explicit Enum type_UP UP_6C UP_6D UP_6G UP_6U UP_6V End Enum ' // le = False est inutile puisque c'est la valeur par défaut, mais ça ne gâche rien Dim nom_UP_init As Boolean = False Dim nom_UP(UP_6C To UP_6V) As String Sub Init() nom_UP(UP_6C) = "6C" nom_UP(UP_6D) = "6D" nom_UP(UP_6G) = "6G" nom_UP(UP_6U) = "6U" nom_UP(UP_6V) = "6V" nom_UP_init = True End Sub Sub CreationFeuillesUP() Dim ws As Worksheet Dim ws_UP(UP_6C To [color=#ff001d]UP_6V)[/color] As Worksheet Dim i As Integer Dim b As Boolean Dim cell_source As Range Dim cell_UP(UP_6C To UP_6V) As Range ' // init nom_UP If nom_UP_init = False Then Init() ' // Création de toutes les feuilles UP, si elles n'existent pas encore For i = UP_6C To UP_6V b = False For Each ws In Worksheets If ws.Name = nom_UP(i) Then b = True Exit For End If Next If Not b Then Set ws_UP(i) = Worksheets.Add(, Sheets(Sheets.Count)) ws_UP(i).Name = nom_UP(i) ' // Création d'un pointeur sur la prochaine ligne à remplir Set cell_UP(i) = ws_UP(i).Range("A1") Else ' // Initialisation du pointeur sur la prochaine ligne à remplir Set cell_UP(i) = ws_UP(i).Range("A65536").End(xlUp) If cell_UP(i).Text <> "" Then Set cell_UP(i) = cell_UP(i).Offet(1) End If Next For Each cell_source In Worksheets("SOURCE").Columns(1).Cells For i = UP_6C To UP_6V If cell_source.Value = nom_UP(i) Then cell_source.EntireRow.Copy Destination:=cell_UP(i) Set cell_UP(i) = cell_UP(i).Offet(1) End If Next Next End Sub
Il manquait la ligne 25.
Dis-donc, Titi. Il faut faire l'effort de comprendre ce que l'on te propose, et ne pas recopier bêtement (et en plus en faisant des fautes
). Ce ne devrait pas être à RedSux de tout te remettre dans l'ordre.
@RedSux
). Ce ne devrait pas être à RedSux de tout te remettre dans l'ordre.@RedSux
Juste histoire de pinailler :
If nom_UP_init = False Then Init()
If Not nom_UP_init Then Init()
Bonsoir,
Je comprend ton agacement et m'en excuse. Je suis novice et j'ai un besoin très fort de programmation, seul des gens tel que toi peuvent m'aider.
J'ai quelques questions, je recopie c'est vrai, mais j'essaie de tout déchiffrer et je ne comprend pas pourquoi je n'arrive pas à l'exécuter encore une fois.
A quoi sert le "b" et "Boolean" ensuite j'ai le message d'erreur suivant pour : "Dim nom_UP_init As Boolean = false" erreur de compilation attendu fin d'instruction sur le "="
Sur le "nom_UP_init = True" erreur de compilation variable non définie
If Not nom_UP_init Then Init() reste en rouge...
Set ws_UP(i) = Worksheets.Add(, Sheets(Sheets.Count))
ws_UP(i).Name = nom_UP(i) de même pour "ws"
Explique moi s'il te plait pour que je parvienne à comprendre et résoudre.
Merci
Je comprend ton agacement et m'en excuse. Je suis novice et j'ai un besoin très fort de programmation, seul des gens tel que toi peuvent m'aider.
J'ai quelques questions, je recopie c'est vrai, mais j'essaie de tout déchiffrer et je ne comprend pas pourquoi je n'arrive pas à l'exécuter encore une fois.
A quoi sert le "b" et "Boolean" ensuite j'ai le message d'erreur suivant pour : "Dim nom_UP_init As Boolean = false" erreur de compilation attendu fin d'instruction sur le "="
Sur le "nom_UP_init = True" erreur de compilation variable non définie
If Not nom_UP_init Then Init() reste en rouge...
Set ws_UP(i) = Worksheets.Add(, Sheets(Sheets.Count))
ws_UP(i).Name = nom_UP(i) de même pour "ws"
Explique moi s'il te plait pour que je parvienne à comprendre et résoudre.
Merci
Citation :
Je comprend ton agacement et m'en excuse.
Citation :
Je suis noviceCitation :
et j'ai un besoin très fort de programmationCitation :
seul des gens tel que toi peuvent m'aider. ![[:spamafote] [:spamafote]](http://m.bestofmedia.com/sfp/design/usr/fr/smilies/3e/46/spamafote.gif)
-------------------------
Bah alors RedSux, tu te crois en C (ou tout autre langage de programmation un tant soit peu bien pensé) ? VB est un langage de m
Dim nom_UP_init As Boolean = false
e, même pas fichu d'initialiser ses variables
Comme il y a une erreur sur la définition de la variable, pas la peine de s'énerver, il y aura une erreur à chaque utilisation de la variable. En réglant ce problème, tu règles les autres.
Pour Boolean, tu mets le curseur sur ce mot et tu appuies sur la touche F1. Ensuite, tu me lis l'aide. Après seulement, tu te permets de poser des questions
(c'est chiant d'être novice, hein !
)Pour b, c'est ma faute. Ce nom n'est pas assez explicite. Ligne 29, 38 et 41, remplace-la par une_feuille_a_ete_trouvee.
Quel est le problème pour ce code ?
Set ws_UP(i) = Worksheets.Add(, Sheets(Sheets.Count))
ws_UP(i).Name = nom_UP(i) de même pour "ws"
Salut,
Ce que tu dis est vrai mais pour la formation mon patron est radin, par contre si tu connais un bon bouquin et surtout des applications pour s'excercer ca serait le top.
Dim nom_UP_init As Boolean = false
il faut supprimer le "= false" mais j'ai un doute.
Set ws_UP(i) = Worksheets.Add(, Sheets(Sheets.Count))
ws_UP(i).Name = nom_UP(i) de même pour "ws"
Pour ce code le message est le suivant "erreur d'execution 1004" la méthode name de l'objet '_worsheet' a échoué
et puis
Set cell_UP(i) = cell_UP(i).Offet(1)
j'ai erreur d'execution '438' propriété ou méthode non gérée par cet objet.
Alors,
J'arrive à créer les onglets et les nommer par les noms des UP donc ca fonctionne par contre l'init sert à effacer les feuilles et recommancer mais rien ne se passe je pense que la solution n'est pas d'effacer le "= false"
Par contre il ne copie que la première ligne et me surligne le code suivant :
cell_source.EntireRow.Copy Destination:=cell_UP(i)
Set cell_UP(i) = cell_UP(i).Offet(1)
Pas grand chose à dire pour le moment, zeb semble maitriser le sujet ... Je me permettrai donc de simplement mettre quelques smileys :
![]()
e, même pas fichu d'initialiser ses variables
zeb a dit :
Bah alors RedSux, tu te crois en C (ou tout autre langage de programmation un tant soit peu bien pensé) ?
zeb a dit :
VB est un langage de m
e, même pas fichu d'initialiser ses variables
Lassé par la pub ? Créez un compte
- Contenus similaires :
- ForumNommer un onglet vba
- ForumNommer un onglet vba excel
- ForumCréer variable d'environnement linux
- ForumCrã ation onglet vba variable excel
- ForumCréer une pétition
- ForumExcel onglet
- ForumCréer une macro
- ForumPhp plusieurs variable dans une variable
- ForumIe avec onglet
- ForumCréer une interface
- Voir plus

)